Как включить восстановление пакета nugets в Visual Studio 2015?
Как включить функцию восстановления пакетов nuget в Visual Studio 2015?
Эта функция просто отсутствует в моем контекстном меню (да - я дважды проверил, что я пробую ее на решении вместо проекта)
Мой единственный проект - консольное приложение.NET 4.5 - папки.nuget еще нет. Установлен фактический пакет nuget.
7 ответов
У меня была та же проблема, что и у вас, и я решил ее удалить packages
папка из моего решения, а также bin
а также obj
папки из каждого проекта в решении и перестроить его.
Как оказалось, реальным решением является переход на автоматическое восстановление пакетов. У нас возникли проблемы с NuGet после обновления до VS 2015 после некоторой работы в 2013 году. Оказывается, старый способ выполнения NuGet полностью использует новый способ сделать это.
Решение простое, хотя и утомительное. Очевидно, файл NuGet.targets сигнализирует VS об использовании старого метода NuGet, и его отсутствие означает, что вы сейчас используете "Автоматическое восстановление пакета". Вы можете перейти на автоматическое восстановление пакета, выполнив следующие действия:
- Удалить.nuget/NuGet.exe
- Удалить.nuget/NuGet.targets
- Для каждого проекта:
- Выгрузить проект
- Щелкните правой кнопкой мыши -> Изменить проект
- Удалите все ссылки на файл NuGet.targets, то есть следующее:
<RestorePackages>true</RestorePackages> ... <Import Project="$(SolutionDir)\.nuget\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>
Существует также сценарий powershell, который выполнит переход за вас, если вы чувствуете смелость. Вы можете найти это на github.
Для других эта опция доступна в разделе настроек Nuget в Visual Studio Options
Моя Visual Studio 2015 Professional была установлена с использованием настроек по умолчанию. Параметры "Разрешить NuGet загружать отсутствующие пакеты" и "Автоматически проверять отсутствующие пакеты во время сборки в Visual Studio" уже были проверены по умолчанию, но я все еще не смог загрузить пакеты. Я получаю сообщение об ошибке, что версия пакета не может быть найдена.
Мне нужно было установить флажок в меню "Инструменты"> "Параметры"> "Диспетчер пакетов NuGet"> "Источники пакетов", чтобы функция восстановления пакетов NuGet работала должным образом.
У меня была проблема с восстановлением пакета с ошибкой 401 неавторизованным. Я нашел решение, сняв флажки с доступных локальных источников пакетов. Отладка> Параметры> Диспетчер пакетов NuGet> Источники пакетов
Разрешить только пакеты nuget.org
У меня была проблема с доступом к папке пакетов после запуска Visual Studio 2015 в режиме администратора, поэтому я удалил ее с намерением выполнить восстановление.
Но восстановление не было выполнено при перестройке решения, и не было найдено пакетов восстановления на уровне решения или в окне Nuget.
Однако если вы щелкнете правой кнопкой мыши по узлам References в проектах решения, появится опция Restore Packages. Запуск этого во всех проектах исправил это для меня.
введите описание изображения здесь
Ну, с VS2015 все довольно просто, все, что мне нужно было сделать, - это щелкнуть правой кнопкой мыши по моему проекту и щелкнуть по восстановлению nuget.