Есть ли способ «установить» пакет nuget, как это делает Visual Studio, но на сервере развертывания
Я думаю, у вас есть некоторое недопонимание по поводу этой проблемы, и я боюсь то, что вы хотите, не может быть реализовано с помощью nuget .
На самом деле это задание MSBuild для копирования содержимого связанного пакета nuget в bin \ Debug.
Фактически , MSBuild (MSBuild.exe
) - это исполняемый файл со средой разработки vs.
Nuget отвечает только за загрузку package в свой локальный, а затем связать его с вашим проектом. Фактическая операция копирования содержимого - это просто работа MSBuild .
В VS IDE , MSBuild отвечает за эту операцию. Когда вы нажимаете build (на самом деле он вызывает MSBuild.exe ), зависимые DLL-файлы пакета nuget будут скопированы в вашу выходную папку.
Чтобы доказать это , вы можно создать новый пустой проект, а затем установить этот пакет nuget, а затем проверить, находятся ли файлы в bin \ Debug. После этого выполните Build , чтобы проверить, существуют ли файлы.
Решение
Поскольку VS2017 , MSBuild можно установить отдельно без VS IDE .
Вы можете установить Build Tool для Visual Studio 2019 .
Под Все загрузки -> Инструменты для Visual Studio 2019 -> Build Tool для Visual Studio 2019
Начиная с его можно установить отдельно от VS и является легковесным, многие разработчики теперь используют его для сборки проектов на производственных серверах.
Когда вы используете nuget.exe
, установите такой пакет nuget в свой проект, затем используйте инструмент сборки для выполнения такой команды msbuild xxx\xxx\xxx.csproj -t:build
для сборки проект. После этого вы увидите их в папке bin\Debug
.
Обновление 1
Фактически , nuget выполняет задание, которое определяет, какие соответствующие зависимости копировать. Но nuget передает эту информацию в MSBuild . Nuget просто определяет соответствующую информацию, которая похожа на составление плана, c действие выполняется MSBuild , включая ссылку, восстановление, копирование и т. Д. Поэтому вам следует запустить MSBuild , чтобы получить то, что вы хотите.
Вдобавок , если вы по-прежнему получаете то, что хотите, и пропустите MSBuild , чтобы получить файл напрямую, вы можете предложить функцию команде . (нажмите Предложить функцию ).