Как включить восстановление пакета 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, и его отсутствие означает, что вы сейчас используете "Автоматическое восстановление пакета". Вы можете перейти на автоматическое восстановление пакета, выполнив следующие действия:

  1. Удалить.nuget/NuGet.exe
  2. Удалить.nuget/NuGet.targets
  3. Для каждого проекта:
    1. Выгрузить проект
    2. Щелкните правой кнопкой мыши -> Изменить проект
    3. Удалите все ссылки на файл 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.

Другие вопросы по тегам