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

.NET Maui:如何在Azure Pipelines中设置应用版本?

.NET Maui Azure DevOps 版本设置方案

一、现成Azure DevOps任务推荐

不用手动修改csproj文件,直接通过构建参数注入版本值是最简洁的方案:

  • DotNetCoreCLI任务:在dotnet build或dotnet publish命令中通过/p参数覆盖版本属性,还能结合流水线变量动态赋值:

    - task: DotNetCoreCLI@2
      inputs:
        command: 'build'
        projects: '**/*.csproj'
        arguments: '/p:ApplicationDisplayVersion=$(DisplayVersion) /p:ApplicationVersion=$(BuildVersion)'
    

    比如可以把$(DisplayVersion)设为1.2.3,$(BuildVersion)用流水线自带的$(Build.BuildNumber)自动生成。

  • MSBuild任务:习惯用MSBuild的话,同样可以传递属性参数,效果完全一致:

    - task: MSBuild@1
      inputs:
        solution: '**/*.csproj'
        msbuildArguments: '/p:ApplicationDisplayVersion=$(DisplayVersion) /p:ApplicationVersion=$(BuildVersion)'
    

二、修改csproj文件的轻量方案

如果必须提前修改csproj文件内容(比如后续步骤依赖文件内的版本值),可以用PowerShell任务写简单脚本完成:

$csprojPath = "你的项目路径/YourApp.csproj"
$displayVersion = "$(DisplayVersion)"
$buildVersion = "$(BuildVersion)"

# 替换ApplicationDisplayVersion
(Get-Content $csprojPath) -replace '<ApplicationDisplayVersion>.*?</ApplicationDisplayVersion>', "<ApplicationDisplayVersion>$displayVersion</ApplicationDisplayVersion>" | Set-Content $csprojPath

# 替换ApplicationVersion
(Get-Content $csprojPath) -replace '<ApplicationVersion>.*?</ApplicationVersion>', "<ApplicationVersion>$buildVersion</ApplicationVersion>" | Set-Content $csprojPath

替换脚本中的项目路径,再配合流水线变量就能自动修改版本字段。

三、.NET Maui版本管理的变化说明

和Xamarin分开维护info.plist、AndroidManifest.xml不同,.NET Maui把跨平台版本信息统一收敛到了csproj的<PropertyGroup>中:

  • ApplicationDisplayVersion对应iOS的CFBundleShortVersionString和Android的versionName
  • ApplicationVersion对应iOS的CFBundleVersion和Android的versionCode
    构建时Maui会自动把csproj里的版本值同步到对应平台的配置文件中,不用再手动修改多个文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 21:25:23