【发布时间】:2020-05-13 23:50:35
【问题描述】:
我有一个 ASP.NET Core 应用程序,我通过 Azure DevOps 构建/发布管道在专用服务器上发布。
我在 YAML 构建中使用 GitVersion 任务 (gittools.gitversion.gitversion-task.GitVersion@4) 管理应用程序版本号。
构建步骤类似于:
- task: DotNetCoreCLI@2
displayName: 'dotnet build'
inputs:
command: custom
custom: build
workingDirectory: src/MyAppProjectFolder
arguments: '-p:Version=$(GitVersion.FullSemVer)'
并且正在使用给定的 FullSemVer 正确生成 .exe(我正在检查 Azure 代理工作文件夹)
然后我有发布步骤:
- task: DotNetCoreCLI@2
displayName: 'dotnet publish'
inputs:
command: publish
publishWebProjects: false
arguments: '--output $(build.artifactstagingdirectory) --no-restore --no-build'
workingDirectory: src/MyAppProjectFolder
由于某种原因,我在发布创建的 C:\agent_work\1\a\a.zip 中找到的相同 .exe 没有正确的版本号,但通用 1.0.0。
如果我在同一台服务器上手动“模拟”管道(通过 powershell 手动使用 dotnet build 和 dotnet publish,相同的参数)一切都会按预期工作。
发生了什么事?有没有办法确保应用程序保持 $(GitVersion.FullSemVer) 版本?
注意:我必须添加
- task: UseDotNet@2
displayName: 'Use .Net Core sdk 2.1.x'
inputs:
packageType: sdk
version: 2.1.x
installationPath: $(Agent.ToolsDirectory)/dotnet
includePreviewVersions: true
在每个 NET Core 任务前面,如 here 所述,在代理更新到 .NET Core 3.0 之后(在这些构建运行良好之前)。
【问题讨论】:
标签: azure asp.net-core build azure-devops versioning