MarkizaSckuza
@MarkizaSckuza

Почему не подгружаются в код зависимости NuGet?

Здравствуйте!
Такая проблема: в packages.config указаны все необходимые зависимости, так же и в папке packages, NuGet Package Manager показывает установленные пекеджи для солюшена, т.е., все скачалось и установилось. Но только эти библиотеки не подгружаются в коде - 14 тысяч ошибок вида "are you missing a using directive or an assembly reference?". Что я могла пропустить?
Возможно, я где-то сделала совсем глупую ошибку, прошу не винить, первый раз пытаюсь запустить реальный проект на .NET, до этого работала только с Java.

UPD: Visual Studio 2015, NuGet 3.3.0.167
  • Вопрос задан
  • 1141 просмотр
Решения вопроса 1
1) проверьте, выполняется ли nuget restore. Вот прям сами откройте packages, зайдите в папки конкретных пакетов и проверьте что там лежат скачанные сборки
2) к сожалению в классических проектах на C# (не DNX) взаимодействие с NuGet довольно посредственное. В том смысле, что содержимое проекта и packages.config может рассинхронизироваться (ввиду отстутсвия единого списка пакетов/сборок, как это сделали в project.json). Т.е. в packages.config все будет, но в csproj эти ссылки не будут прописаны.
Выход из ситуации - открыть ручками csproj и поставить нужные Reference, прописав относительные пути на сборки в packages, вроде таких:
<Reference Include="NetTopologySuite.IO.ShapeFile">
      <HintPath>..\..\packages\NetTopologySuite.IO.1.13.3.2\lib\net40-client\NetTopologySuite.IO.ShapeFile.dll</HintPath>
    </Reference>

Конкретный путь надо смотреть вам (на сколько уровней "выйти" и в какие папки "зайти"). Сначала нужно, конечно, проверить, нет ли уже этих ссылок - возможно просто папка packages почему-то уехала на новое место, и пути просто испортились.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Shwed_Berlin
@Shwed_Berlin
.net Software Developer
using директивы вы должны сами в каждом файле прописать
правой кнопкой мыши на неопознанном элементе -> resolve

P.S. у меня немецкая версия VS, название пункта в контекстном меню может зваться иначе чем "resolve"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы