.NET MAUI AndroidManifest.xml 文件的自动化版本号
在本文中,我将介绍一种在 AndroidManifest.xml 文件中更新版本号的自动化方法。
Visual Studio 2022 社区版预览版是我开发 .NET Maui 应用的首选 IDE。 在按照以下指南在 Google Play 商店进行内部测试部署时:为 Google Play 分发发布 .NET MAUI Android 应用 – .NET MAUI | Microsoft Learn,我意识到我不得不手动编辑项目属性编辑器中的清单文件中的 Android 版本代码。 我真正想要的是一种自动更新 AndroidManifest.xml 文件中版本号的方法。
为了实现这一点,我使用了一个名为“Automatic Versions 3”的扩展,该扩展具有许多设置,可以控制更新程序集版本号。 我将版本号的构建部分设置为始终递增。 因此,每次进行调试或发布构建时,构建号都会增加。
这样就可以在构建时自动设置程序集版本号了。 为了更新 androidmanifest.xml 文件,我使用一个预构建事件并执行以下 PowerShell 脚本。 我要感谢 GitHub Copilot(或者可能是 Edge 侧边栏 Copilot)为我生成了这段代码。
param([string]$projectPath, [string]$androidManifestPath)
# Extract AssemblyVersion from .csproj file
$assemblyVersion = [System.Text.RegularExpressions.Regex]::Match((Get-Content $projectPath -Raw), '<AssemblyVersion>(.*?)</AssemblyVersion>').Groups[1].Value
# Split AssemblyVersion into parts
$versionParts = $assemblyVersion.Split('.')
# Set versionCode as the third number in AssemblyVersion
$versionCode = $versionParts[2]
# Set versionName as the full AssemblyVersion
$versionName = $assemblyVersion
# Load AndroidManifest.xml as an XML document
$androidManifest = [xml](Get-Content $androidManifestPath)
# Update android:versionCode and android:versionName
$manifest = $androidManifest.SelectSingleNode("/manifest")
$manifest.SetAttribute("android:versionCode", $versionCode)
$manifest.SetAttribute("android:versionName", $versionName)
# Save the updated AndroidManifest.xml
$androidManifest.Save($androidManifestPath)
我在项目文件中添加了预构建目标。
<Target Name="UpdateVersionInformation" BeforeTargets="BeforeBuild"> <Exec Command="powershell -File $(ProjectDir)UpdateAndroidManifest.ps1 "$(ProjectDir)MyNextBook.csproj" "$(ProjectDir)Platforms\Android\AndroidManifest.xml"" /> </Target>
就这样了。 使用扩展更新程序集版本。 一个预构建命令,执行一个 PowerShell 脚本,该脚本从程序集版本信息中提取信息来更新 androidmanifest.xml 文件。
现在,部署到 Google Play 商店进行内部测试,变得更容易了一步。