.NET MAUI AndroidManifest.xml的自动版本号

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值