.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的versionNameApplicationVersion对应iOS的CFBundleVersion和Android的versionCode
构建时Maui会自动把csproj里的版本值同步到对应平台的配置文件中,不用再手动修改多个文件。
内容的提问来源于stack exchange,提问作者Simon
相关产品推荐
相关产品推荐

