You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure Pipeline中更新Windows服务与控制台应用版本?

如何在Azure DevOps流水线中更新控制台应用与Windows服务的版本号?

你遇到的核心问题是:DotNetCoreCLI@2任务的versioningScheme和versionEnvVar参数仅对pack命令生效,build命令并不识别这两个配置,所以你之前的build任务设置不会改变应用的版本号。

要实现控制台应用和Windows服务的版本更新,有两种直接可行的方案:

方案1:在build命令中直接传递版本参数

修改build任务的arguments,通过/p:Version参数将流水线变量PackageVersion注入到构建过程中,这是最直接的方式:

- task: DotNetCoreCLI@2
  displayName: Build project
  inputs:
    command: 'build'
    projects: '**/*.csproj'
    arguments: '--configuration $(buildConfiguration) -o $(Build.StagingDirectory)/ci-build /p:Version=$(PackageVersion)'

如果你的项目需要分别指定AssemblyVersion和FileVersion(默认SDK风格项目中Version会同步这两个值),可以补充对应的参数:

arguments: '--configuration $(buildConfiguration) -o $(Build.StagingDirectory)/ci-build /p:Version=$(PackageVersion) /p:AssemblyVersion=$(PackageVersion) /p:FileVersion=$(PackageVersion)'

方案2:在项目文件中配置版本变量

如果是SDK风格的.csproj文件,可以直接在项目里定义版本属性,让构建时自动读取流水线变量:

  1. 打开项目的.csproj文件,添加或修改Version节点:
<PropertyGroup>
  <Version>$(PackageVersion)</Version>
</PropertyGroup>
  1. 保持build任务的原有配置即可,流水线会自动将PackageVersion变量传递给项目的构建过程。

这两种方案都能让你的控制台应用和Windows服务在构建后使用指定的PackageVersion作为版本号,替代默认的1.0.0。

内容的提问来源于stack exchange,提问作者Enrico

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 20:04:57