Разница между пакетом в dotnet и msbuild - PullRequest
0 голосов
/ 04 февраля 2019

Я использую новый проект в стиле SDK VS2017

В dotnet я могу упаковать, используя команду:

      dotnet pack project.csproj     --no-dependencies  --no-restore --output c:\packages -p:TargetId=abc -p:configuration=release 

В msbuild я могу упаковать, используя команду:

     msbuild project.csproj /t:pack -p:TargetId=abc -p:configuration=release 

Как настроить параметры dotnet --no-dependencies --no-restore --output с помощью msbuild

1 Ответ

0 голосов
/ 04 февраля 2019
  • --no-restore перевод не требуется.Если вы хотите восстановить, передайте -restore (краткая форма -r) в msbuild.
  • --no-build переводится в -p:NoBuild=true
  • --no-dependencies переводится в -p:RestoreRecursive=false (обратите внимание, что это не нужно использовать вместе с --no-restore)
  • --output переводит в -p:PackageOutputPath=C:\some\path

Обратите внимание, что другие команды, такие как buildпереведите --no-dependencies во что-то другое: -p:BuildProjectReferences=false, который не создает ссылки между проектами, что может быть тем, что вам нужно.

Полное сопоставление аргументов командной строки с параметрами MSBuild распространяется нанесколько исходных файлов в репозитории GitHub dotnet / cli:

  • PackCommandParser.cs содержит основные аргументы команды pack.
  • Некоторые из CommonOptions.cs .
  • Поскольку это команда, которая поддерживает неявное восстановление, она использует параметры восстановления из RestoreCommandParser.cs

Дополнительные параметры, поддерживаемые NuGetцели - которые вы можете установить как из командной строки, так и из файла проекта - задокументированы в NuGet pack и восстановлены как цели MSBuild .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...