2015-01-24 4 views
50

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

Эта функция просто не хватает в контекстном меню (Да - я проверил, что я пытаюсь его на решение вместо проекта)

Мой единственный проект является консольным приложением .NET, 4,5 - есть no .nuget. Установлен реальный пакет nuget.

+3

Возможный дубликат [Как включить восстановление пакета NuGet в Visual Studio 2015] (http://stackoverflow.com/questions/27895504/how-do-inable-nuget-package-restore-in-visual- studio-2015) –

ответ

5

Для других эта опция доступна в разделе Настройки NuGet в Visual Options студии

enter image description here

+1

Недавно я столкнулся с этой проблемой в 2015 году и посмотрел на мои варианты/пакеты, и по какой-то причине nuget не был проверен как доступный источник пакета, я нажал на него, и все это начало работать. – Ismail

+0

Не могли бы вы рассказать мне, как пакет кэш-кнопка будет под управлением менеджера пакетов nuget в vs 2015 –

53

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

+2

Чувак спасибо! Я ползал повсюду в Интернете, и это было реальное решение после удара многих кирпичных стен. – scniro

+0

Это самый точный ответ и исправил ту же проблему для меня. Я все пробовал, искал везде, но ничего не работало. Мне пришлось несколько раз запускать команду «update-package -reinstall», не имея моего пакета .config для редактирования, и это было так больно! –

+3

ПРИМЕЧАНИЕ! Вместо этого прочитайте ответ от BinaryTox ниже! –

0

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

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

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

35

Как оказалось, реальное решение - migrate to Automatic Package Restore. У нас возникли проблемы с 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.

+2

Редактирование файлов проекта во внешнем редакторе проще, VS заберет, что файл будет изменен при его сохранении. –

+0

Вам также необходимо убедиться, что вы случайно не совершили какие-либо пакеты для управления версиями/версиями. Системы управления версиями обычно игнорируют библиотеки DLL, но передают файлы .nupkg в исходный репозиторий. В этот момент NuGet подумает, что восстановить ничего не будет **, но ** ваши сборки могут потерпеть неудачу. См. [Мой ответ на соответствующий вопрос] (http://stackoverflow.com/questions/6876732/how-do-i-get-nuget-to-install-update-all-the-packages-in-the-packages- конфиг/23254566 # 23254566). – David

+0

И, как я понимаю, NuGet сам поместит пакеты, которые нужно добавить в исходный контроль. Вероятно, вы захотите отключить это поведение, как описано в документах [NuGet docs] (http://docs.nuget.org/consume/package-restore). – David

2

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

только позволяют nuget.org пакеты

2

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

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

enter image description here

0

enter image description here

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