#azure-devops #nuget #azure-pipelines
#azure-devops #nuget #azure-конвейеры
Вопрос:
У меня есть сборка yaml на Azure DevOps для упаковки и переноса нескольких csproj
проектов в один пакет NuGet.
Моя проблема заключается в том, что имя пакета называется как один из проектов. Я знаю о nuspec
файле, но я не знаю, переопределит ли это мой механизм управления версиями, и я хотел бы управлять своим именованием из одного места — моего файла сборки!
Можно ли это сделать?
- task: DotNetCoreCLI@2
displayName: 'dotnet pack'
inputs:
command: pack
arguments: --include-source --include-symbols
packagesToPack: '**/*.csproj'
versioningScheme: byBuildNumber
Ответ №1:
Вы можете использовать эту команду dotnet pack -p:PackageID=myId
, поэтому в YAML это было бы:
- task: DotNetCoreCLI@2
displayName: "dotnet pack"
inputs:
command: custom
custom: pack
arguments: >
$(System.DefaultWorkingDirectory)/stackoverflow/52-nuget-packager/SampleApp.csproj
--no-build
-p:PackageId=myId
--output $(Build.ArtifactStagingDirectory)
-p:PackageVersion=2.1.0
-p:Configuration=$(buildConfiguration)
packagesToPack: '**/*.csproj'
versioningScheme: 'off'
outputDir: '$(Build.ArtifactStagingDirectory)'
однако, чтобы это работало, вам необходимо использовать пользовательскую команду. Но я не уверен, как это будет вести себя, когда у вас есть несколько проектов для упаковки, и у меня нет такого примера под рукой. Вы можете найти эту тему интересной.