Azure DevOps .NET Core 构建和发布不保留给定的应用程序版本
Azure DevOps .NET Core build and publish doesn't keep given application version
我有一个 ASP.NET 核心应用程序,我正在通过 Azure DevOps build/release 管道在专用服务器上发布。
我在 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\a\a.zip 中找到的相同 .exe 没有正确的版本号,但是通用的 1.0.0.
如果我在同一台服务器上手动 "emulate" 管道(通过 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 之后(在这些构建运行良好之前)。
尝试将 -p:Version=$(GitVersion.FullSemVer)
添加到发布步骤的参数中。
我有一个 ASP.NET 核心应用程序,我正在通过 Azure DevOps build/release 管道在专用服务器上发布。
我在 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\a\a.zip 中找到的相同 .exe 没有正确的版本号,但是通用的 1.0.0.
如果我在同一台服务器上手动 "emulate" 管道(通过 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 之后(在这些构建运行良好之前)。
尝试将 -p:Version=$(GitVersion.FullSemVer)
添加到发布步骤的参数中。