Как включить восстановление пакета nugets в Visual Studio 2015?

Как включить функцию восстановления пакета nuget в Visual Studio 2015?

Функция просто отсутствует в моем контекстном меню (да - я дважды проверял, что я пытаюсь использовать это решение вместо проекта)

Мой единственный проект - консольное приложение .NET 4.5 - пока нет папки .nuget. Существует установленный пакет nuget.

Ответ 1

У меня была такая же проблема, как и вы, и так, как я решил, это удалить папку packages из моего решения, а также bin и obj папки из каждого проекта в решении и дать ему перестройку.

Ответ 2

Как оказалось, реальное решение - перейти на автоматическое восстановление пакетов. У нас возникли проблемы с 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 script, который будет выполнять миграцию для вас, если вы чувствуете смелость. Вы можете найти его на github.

Ответ 3

Для других эта опция доступна в разделе настроек Nuget в параметрах Visual Studio

enter image description here

Ответ 4

У меня возникла проблема с восстановлением пакета с ошибкой 401 несанкционированным. Я нашел решение, сняв флажки с доступными локальными источниками пакетов. Отладкa > Параметры > Диспетчер пакетов NuGet > Источники пакетов

Разрешить пакеты nuget.org

Ответ 5

Мой Visual Studio 2015 Professional был установлен с использованием настроек по умолчанию. Параметры "Разрешить NuGet для загрузки отсутствующих пакетов" и "Автоматическая проверка отсутствующих пакетов во время сборки в Visual Studio" уже были проверены по умолчанию, но я все еще не мог загрузить пакеты. Я получаю сообщение об ошибке, что версия пакета не найдена.

Мне нужно было установить флажок в разделе Инструменты > Параметры > Диспетчер пакетов NuGet > Источники пакетов, чтобы включить восстановление пакета NuGet для работы, как ожидалось.

введите описание изображения здесь

Ответ 6

У меня возникла проблема с доступом к папке пакетов после запуска Visual Studio 2015 в режиме администратора, поэтому я удалил ее с целью выполнить восстановление.

Но при восстановлении решения восстановление не производилось, и не было пакетов восстановления, которые можно найти на уровне решения или в окне Nuget.

Однако, если вы щелкните правой кнопкой мыши узлы Ссылки в проектах в решении, есть опция Восстановить пакеты. Выполнение этого во всех проектах исправило это для меня.

Ответ 7

введите здесь описание изображения

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