我正在运行一个 powershell 脚本来自动化我为一个 android 项目构建我的 apk。我可以传入一个应用程序版本代码和名称,我的构建脚本将使用它来替换 AndroidManifest.xml 文件中的这些参数。
我有两条线需要更换。xml文件中的原始行如下:
android:versionCode="1"
android:versionName="Version 1"
然后我运行两个不同的命令来替换每一行的文本,它们如下:
(Get-Content "$fullOutputPath\$projectFileName\AndroidManifest.xml") | ForEach-Object {$_ -replace "(android:versionCode=`")1(`")", "`$1$versionCode`$2"} | Set-Content "$fullOutputPath\$projectFileName\AndroidManifest.xml";
(Get-Content "$fullOutputPath\$projectFileName\AndroidManifest.xml") | ForEach-Object {$_ -replace "(android:versionName=`")1\.0(`")", "`$1$versionName`$2"} | Set-Content "$fullOutputPath\$projectFileName\AndroidManifest.xml";
为了测试我传入的参数,versionCode 为“2”,版本名称为“Version 1”。生成的 xml 文件如下所示:
$12"
android:versionName="Version 1"
所以你可以看到第二个正则表达式替换工作得很好,第一个没有。我似乎无法理解为什么或如何解决它。
谢谢你的帮助!