Подтвердить что ты не робот

Visual Studio не загружает ссылки на проект

У меня есть решение Visual Studio (Community 2013) со многими проектами С# на моем компьютере, и я только что обновился до Windows 10 с 7. В проекте используется клиентский профиль .Net Framework 4.0. На win7 все работало нормально, но теперь один из проектов, похоже, не загружает ссылки. Рядом с указанными элементами расположены желтые треугольники, на которые не ссылаются элементы, относящиеся к одному и тому же решению (поэтому система и ссылки, загруженные NuGet, не загружены).

ссылки...

Ресурсы - это еще один проект в решении, другие - нет. Когда я открываю вкладку свойств для системной ссылки, поле Path пуст, поэтому поле Resolved False...

пустой путь

Кроме того, в файле .csproj все выглядит нормально, есть узлы <HintPath>, где это необходимо, с относительным (или абсолютным, если ссылка находится на другом диске) и исправлены существующие пути.
Еще одна странная вещь: в обозревателе объектов все ссылки загружаются (по-видимому):

Обозреватель объектов выглядит нормально

Итак, что мне делать:

  • заново создайте файл проекта (создав новый проект и снова добавив все файлы и ссылки);
  • изменить что-то в конфигурации проекта;
  • используйте более новую версию .Net;
  • изменить что-то в конфигурации VS;
  • использовать другой VS (например, Community 2015) или переустановить текущий?
4b9b3361

Ответ 1

У меня также была эта проблема, и мне потребовалось некоторое время, чтобы понять это. Проблема в том, что NuGet изменил способ восстановления пакетов. "Старый путь" нуждался в папке ".nuget" с тремя файлами (nuget.config, nuget.exe, nuget.targets) и некоторыми параметрами в файле проекта, например

     <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
    <PropertyGroup>
      <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
    </PropertyGroup>
    <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
  </Target>

это привело к нарушению проекта.

Исправить это или скопировать недостающий каталог в проект (получить его с более старой версией на vs/nuget или со стороны сотрудника, у которого есть) или просто удалить вышеупомянутую часть из файл проекта.

Для лучшего результата также удалите

<RestorePackages>true</RestorePackages> 

и

<Import Project="$(SolutionDir)\.nuget\nuget.targets" />

из файла проекта!

Подробнее об этом читайте здесь: http://blog.davidebbo.com/2014/01/the-right-way-to-restore-nuget-packages.html и http://docs.nuget.org/consume/package-restore/migrating-to-automatic-package-restore

Ответ 2

Основная проблема - ссылка FRAMEWORK.

Загрузите проект в VS и измените его на странице PROJECT PROPERTIES (TARGET FRAMEWORK), перейдя на .NET 4.x(не клиент) или .NET 4.5