2016-09-13 2 views
7

У нас есть несколько пакетов NuGet на нашем локальном сервере TeamCity и используйте их в различных проектах. Я только что вернулся из отпуска, схватил последнюю версию из исходного кода и попытался перестроить, только чтобы получить кучу ошибок компиляции из-за отсутствия DLL.Visual Studio не загружает DLL для пакета NuGet

Кажется, что 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 на Windows 10 Pro 64 бит (версия 1607, сборка 14393.105). Если есть что-то еще, я могу добавить, пожалуйста, дайте мне знать.

+0

Попробуйте очистить свой локальный кеш пакетов: 'nuget.exe locals all -clear' – jessehouwing

+0

@jessehouwing Я получаю сообщение об ошибке« Неизвестная команда «locals» - любые идеи? Я открыл командную строку в папке .nugget моего решения, чтобы запустить ее. Спасибо – DreamingOfSleep

+0

@jessehouwing Кроме того, в новом проекте WPF, который я попробовал, нет папки .nuget, так как я могу запустить nugget.exe для этого решения? Еще раз спасибо – DreamingOfSleep

ответ

11

Опубликовать это как ответ, чтобы другие могли его найти, даже если вы, кажется, нашли ответ самостоятельно. Я прошел через эту проблему, так что понимаю вашу проблему.

Сначала закройте все экземпляры Visual Studio. Это, как правило, хорошая идея, когда вы делаете что-либо вне VS, что повлияет на то, что думает VS.

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

Самый простой способ обойти это download the latest nuget.exe со своего веб-сайта. Сохраните его где-нибудь вдали от любых проектов, если он понадобится вам снова.

На этом этапе вы не сможете запустить команду для очистки кеша, поскольку вам необходимо сначала обновить nuget. Я согласен, что это кажется странным, учитывая, что вы только что скачали последнюю, но вам нужно сделать следующее ...

nuget update -self 

После того, как вы сделали это, вы можете очистить кэш, как jessehouwing упоминается ...

nuget.exe locals all -clear 

При следующем запуске Visual Studio, вы обнаружите, что все работает, как ожидалось. Возможно, вам придется удалить и переустановить пакеты, чтобы все это работало, но с очищенным кешем, который должен работать без проблем.

Надеюсь, что это все ясно.

+1

Спасибо, что разместили эту – DreamingOfSleep