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

В стеке есть аналогичная запись, но это не помогает с моей проблемой, потому что я использую Visual Studio 2015.

Как установить параметр «Включить восстановление пакета NuGet» в VS2015?

Я выбрал File> New Project и создал пустое веб-приложение ASP.NET . Я ищу этот пункт меню.

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

Я должен упомянуть, что я искал любые ранее существовавшие файлы nuGet в моей папке проекта, и их нет.

c#,asp.net,nuget,visual-studio-2015,nuget-package-restore,

232

Ответов: 19


224 принят

Это заняло слишком много времени, но я наконец нашел этот документ в разделе «Перенос решений MSBuild-Integrated для автоматического восстановления пакетов», и я смог решить проблему, используя описанные здесь методы.

  1. Удалите nuget.targetsкаталог решения вместе с решением
  2. Удалите все ссылки .csprojиз ваших .vbprojили файлов. Хотя он официально не поддерживается, документ ссылается на скрипт PowerShell, если у вас есть много проектов, которые необходимо очистить. Я вручную редактировал мои руки, поэтому я не могу дать никаких отзывов о моем опыте с ним.Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{F4AEBB8B-A367-424E-8B14-F611C9667A85}" ProjectSection(SolutionItems) = preProject .nugetNuGet.Config = .nugetNuGet.Config .nugetNuGet.exe = .nugetNuGet.exe .nugetNuGet.targets = .nugetNuGet.targets EndProjectSection EndProject

При редактировании файлов вручную, вот что вы будете искать:

Файл решения (.sln)

  <Import Project="$(SolutionDir).nugetNuGet.targets" Condition="Exists('$(SolutionDir).nugetNuGet.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).nugetNuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir).nugetNuGet.targets'))" />
  </Target>

Файл проекта (.csproj / .vbproj)

<?xml version="1.0" encoding="utf-8"?>
 <configuration>
  <config>
    <add key="repositorypath" value="$........Packages" />
  </config>
  <solution>
    <add key="disableSourceControlIntegration" value="true" />
  </solution>
</configuration>

55 ов

Microsoft отказалась от поддержки «Включить восстановление пакета NuGet» в VS2015, и вам нужно внести некоторые изменения вручную, чтобы либо перенести старые решения, либо добавить эту функцию в новые решения. Новая функция хорошо описана в NuGet Package Restore .

Существует также руководство по миграции для существующих проектов (как упоминалось ранее): Руководство по перенастройке NuGet

При обновлении:

  1. не удаляйте каталог .nuget.
  2. Удалите файлы nuget.exe и nuget.targets.
  3. Оставьте файл nuget.config.
  4. Очистите каждый файл проекта любой ссылкой на цели NuGet вручную. Сценарий Powershell, похоже, наносил больше урона, чем пользы.

При создании нового проекта:

  1. В своем решении Visual Studio 2015 создайте каталог решений под названием .nuget.
  2. Создайте фактический каталог каталога решений (где находится файл .sln) и назовите его .nuget (обратите внимание, что каталог решений не совпадает с фактическим каталогом файловой системы, хотя они имеют одинаковое имя).
  3. Создайте файл в каталоге .nuget с именем nuget.config.

  4. Добавьте 'nuget.config' в каталог решений, созданный на шаге 2.

  5. Поместите следующий текст в файл nuget.config:

    console

Этот файл конфигурации позволит вам консолидировать все ваши пакеты в одном месте, чтобы у вас не было 20 разных копий одного и того же пакета, плавающего в вашей файловой системе. Относительный путь будет изменяться в зависимости от архитектуры каталога решений, но он должен указывать на каталог, общий для всех ваших решений.

Вам необходимо перезапустить визуальную студию после выполнения шага 5. Nuget не будет распознавать изменения до тех пор, пока вы этого не сделаете.

Наконец, вам, возможно, придется использовать «Nuget Package Manager for Solutions» для удаления и последующей установки пакетов. Я не знаю, был ли это побочным эффектом сценария Powershell, который я запускал, или просто метод, чтобы снова запустить NuGet. Как только я сделал все эти шаги, моя сложная архитектура сборки безупречно работала над сбором новых пакетов, когда я проверял проекты из TFVC.


27

При желании вы можете удалить все папки из папки «пакеты» и выбрать «Управление пакетами NuGet для решения ...». В этом случае кнопка «Восстановить» появляется в пакетах NuGet Packages Windows.


11 ов

Если у вас возникли проблемы или отсутствуют какие-либо пакеты, вы можете просто щелкнуть правой кнопкой мыши в своем проекте и выбрать « Управление пакетами NuGet для решения ... ». После нажатия на это откроется экран, в котором вы увидите панель меню с надписью «Restore»: Восстановить

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


Как уже упоминалось Майком, в VS2015 нет опции «Включить восстановление пакета NuGet». Вам придется вызвать процесс восстановления вручную. Хороший способ - без использования файлов и каталогов - использует пакет обновления NuGet Package Package - Package a € « переустановить : щелкните в поле« Быстрый старт »(обычно в правом верхнем углу), введите console, откройте консоль управления и введите команду:

Update-Package a€“reinstall -ProjectName MyProject

Это приведет к переустановке всех пакетов всех проектов в вашем решении. Чтобы указать один проект, введите:

Restore

Конечно, это необходимо только тогда, когда Restoreкнопка, иногда предлагаемая VS2015, недоступна. Более полезные команды обновления перечислены и описаны здесь: https://docs.microsoft.com/en-us/nuget/consume-packages/reinstalling-and-updating-packages

C #, asp.net, NuGet, зрительно-студия-2015, NuGet-пакет-восстановления,