Visual Studio не загружает DLL для пакета NuGet
У нас есть несколько пакетов NuGet на нашем локальном сервере TeamCity и используйте их в различных проектах. Я только что вернулся из отпуска, схватил последнюю версию из исходного кода и попытался перестроить, только чтобы получить кучу ошибок компиляции из-за отсутствия DLL.
Кажется, что DLL для одного из наших пакетов не загружалась из NuGet. Я попытался запустить новый проект WPF и добавить три пакета. Все три отображаются в файле packages.config, но только два из них загружают библиотеки DLL. Третий загружает только файл *.pdb.
У кого-то еще в команде есть эта проблема, и я попробовал ее на своей запасной машине, и она загрузилась нормально, так что это похоже на проблему с моей машиной, установкой Visual Studio или NuGet. Однако, поскольку я могу без проблем захватывать другие пакеты из одного источника, это не похоже на глобальную проблему с VS или NuGet.
Я понимаю, что не так много, но я не знаю, что еще рассказать вам. Если кто-нибудь может что-нибудь предложить, я был бы очень благодарен. Поскольку источник пакета является нашим собственным, я не могу поделиться этим, к сожалению.
Я использую Visual Studio Enterprise 2015 Update 3 (сборка 14.0.25424.00) с диспетчером пакетов NuGet версии 3.4.4.1321 на 64-разрядной версии Windows 10 Pro (версия 1607, сборка 14393.105). Если есть что-то еще, что я могу добавить, пожалуйста, дайте мне знать.
Ответы
Ответ 1
Проводя это как ответ, чтобы другие могли его найти, хотя вы, кажется, нашли ответ самостоятельно. Я прошел через эту проблему, так что понимаю вашу проблему.
Сначала закройте все экземпляры Visual Studio. Это вообще хорошая идея, когда вы делаете что-либо вне VS, что повлияет на то, что думает VS.
Как вы видели, вам нужно использовать версию командной строки nuget для очистки кеша. Ваша первая проблема заключается в том, чтобы найти это, поскольку это не очевидно. Вторая проблема (если вы ее ищите) состоит в том, что вы найдете множество из них: одну в папке .nuget в каждом решении.
Самый простой способ обойти это - загрузить последнюю версию nuget.exe со своего веб-сайта. Сохраните его где-нибудь вдали от любых проектов, если он вам понадобится.
На этом этапе вы не сможете запустить команду для очистки кеша, так как сначала вам нужно сначала обновить nuget. Я согласен, что это кажется странным, учитывая, что вы только что загрузили последнюю версию, но вам нужно будет сделать следующее...
nuget update -self
Как только вы это сделаете, вы можете очистить кеш, как указано jessehouwing...
nuget.exe locals all -clear
При следующем запуске Visual Studio вы должны обнаружить, что все работает так, как ожидалось. Возможно, вам придется удалить и переустановить пакеты, чтобы они все работали, но с очищенным кешем, который должен работать без проблем.
Надеюсь, что все ясно.
Ответ 2
Для блага поисковиков (так как это вызвало у меня некоторое разочарование).
У меня была похожая проблема, когда я переезжал на новую машину (Windows 10), Nuget (отлично на моей старой машине с Win10) сломал бы все, кроме dll.
Решение
- Перейдите в меню "Пуск" и введите "Разрешить приложение через брандмауэр Windows"
- Нажмите "Изменить настройки", затем "Разрешить другое приложение"
- Введите местоположение (я) Visual Studio (например, для VS 2017 - C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE, затем нажмите devenv.exe)
- Просто чтобы быть уверенным, я проверил как частные, так и публичные сети.
- Удалил папку с пакетами
- Пакет восстановить или пересобрать проект
Это исправило это для меня. Надеюсь, это поможет кому-то еще.
Ответ 3
Решил мою проблему, большое спасибо HockeyJ