#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», которую вы можете отключить.
С помощью командной строки dotnet вы можете использовать --no-restore
параметр для команд, которые могут неявно восстанавливаться.
Комментарии:
1. Я снял галочки с обоих параметров восстановления пакетов, но я по-прежнему получаю сообщение «Все пакеты, перечисленные в packages.config, уже установлены». при сборке, что наводит меня на мысль, что NuGet все еще работает. Когда я дал указание клиенту снять эти флажки, они получили ту же ошибку, что и NuGet.exe был заблокирован из-за групповой политики.
2. Если они настроили свои файлы MSBuild для запуска NuGet.exe или использовать ту функцию VS2010 / 2012 / 2013, о которой я упоминал, им нужно будет снова отредактировать файлы, чтобы отключить ее. Новые проекты из встроенных шаблонов этого не делают. Не имея возможности самостоятельно просматривать файлы и сборку, невозможно догадаться, почему это происходит.