Как мне отключить запуск NuGet при сборке

#visual-studio #nuget

#visual-studio #nuget

Вопрос:

У меня есть клиент, который должен создать наше программное обеспечение на своем сайте, но групповая политика запрещает запуск nuget. Это приводит к сбою сборки. Все пакеты уже существуют в проекте (хранятся в системе управления версиями), поэтому NuGet даже запускать не нужно.

Есть ли способ предотвратить NuGet.exe от запуска?

Комментарии:

1. Привет, Эрик, вы создали это решение внутри VS или с помощью command / script, и не могли бы вы, пожалуйста, поделиться подробным сообщением об ошибке при сбое сборки? Пожалуйста, проверьте это: learn.microsoft.com/en-us/nuget/consume-packages /… и отключите восстановление пакета через настройку NuGet. Файл конфигурации. Прежде чем отключить его, пожалуйста, убедитесь, что в вашем локальном решении уже есть все необходимые пакеты.

Ответ №1:

NuGet.exe никогда не запускается вручную, поэтому, если он запущен, вы можете изменить свой сценарий сборки, чтобы прекратить его вызов. В Visual Studio 2010, 2012 и 2013 была функция «Включить восстановление пакета NuGet в решении», которая загружала NuGet.Целевой файл и NuGet.exe сохраните его в .nuget каталоге и измените каждый файл проекта .NET для импорта nuget.targets файла. Если ваш проект был перенесен с этих времен, вам следует удалить эти изменения, поскольку Visual Studio 2015, 2017 и 2019 имеют лучшую интегрированную поддержку NuGet. Однако в этих случаях вам нужно будет убедиться, что любой сценарий сборки, который выполняется на CI, выполняет отдельное восстановление nuget, поскольку это больше не будет происходить автоматически как часть сборки MSBuild.

В Visual Studio 2015 и далее, в меню Инструменты-> Параметры, Диспетчер пакетов NuGet-> Общие есть опция «Автоматически проверять наличие отсутствующих пакетов во время сборки в Visual Studio», которую вы можете отключить.

Параметры диспетчера пакетов NuGet в Visual Studio с quot;Автоматической проверкой отсутствия пакетов во время сборки в Visual Studioquot; обведены кружком.

С помощью командной строки dotnet вы можете использовать --no-restore параметр для команд, которые могут неявно восстанавливаться.

Комментарии:

1. Я снял галочки с обоих параметров восстановления пакетов, но я по-прежнему получаю сообщение «Все пакеты, перечисленные в packages.config, уже установлены». при сборке, что наводит меня на мысль, что NuGet все еще работает. Когда я дал указание клиенту снять эти флажки, они получили ту же ошибку, что и NuGet.exe был заблокирован из-за групповой политики.

2. Если они настроили свои файлы MSBuild для запуска NuGet.exe или использовать ту функцию VS2010 / 2012 / 2013, о которой я упоминал, им нужно будет снова отредактировать файлы, чтобы отключить ее. Новые проекты из встроенных шаблонов этого не делают. Не имея возможности самостоятельно просматривать файлы и сборку, невозможно догадаться, почему это происходит.