【问题标题】:Naming a NuGet package through YAML通过 YAML 命名 NuGet 包
【发布时间】:2020-09-15 06:34:25
【问题描述】:
我在 Azure DevOps 上构建了一个 yaml,用于打包并将几个 csproj 项目推送到单个 NuGet 包中。
我的挑战是包的名称被命名为项目之一。我知道nuspec 文件,但我不知道它是否会覆盖我的版本控制机制,我想从一个地方控制我的命名 - 我的构建文件!
可以吗?
- task: DotNetCoreCLI@2
displayName: 'dotnet pack'
inputs:
command: pack
arguments: --include-source --include-symbols
packagesToPack: '**/*.csproj'
versioningScheme: byBuildNumber
【问题讨论】:
标签:
azure-devops
nuget
azure-pipelines
【解决方案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)'
但是要让这个工作你需要使用自定义命令。但是我不确定当你有多个项目要打包时它会如何表现,而我手头没有这样的例子。有兴趣的可以找this topic。