Visual Studio 2022社区版预览版是我的.NET Maui应用的首选工作IDE。当我按照使用以下说明在google play商店上部署到内部测试的说明进行操作时: 发布适用于Google Play分发的.NET MAUI Android应用——.NET MAUI |Microsoft学习。我意识到我必须使用项目上的属性编辑器手动编辑清单文件中的android版本代码。我真正想要的是一种自动方法来更新AndroidManifest.xml文件中的版本号。
为此,我使用了一个名为“自动版本3”的扩展,该扩展具有许多您可以控制更新程序集版本号的设置。我将版本号的构建部分设置为始终递增。因此,每次我进行调试或发布构建时,内部版本号都会增加。
因此,在构建时会自动设置程序集版本号。为了更新androidmanifest.xml文件,我使用预生成事件并执行以下PowerShell脚本。我会把功劳归功于github copilot(或者可能是边缘侧边栏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商店进行内部测试。是一步之遥。
本文最初发表于.NET MAUI Automated version numbers for AndroidManifest.xml – Brady Blogs
https://www.codeproject.com/Articles/5382608/NET-MAUI-Automated-version-numbers-for-AndroidMani