根据文档,可以将-p:AndroidVersionCode=101
定义为MSBuild参数之一。
然而,Android版本代码被忽略,最终的APK文件总是只包含来自AndroidManifest.xml的值,即使<GenerateApplicationManifest>true</GenerateApplicationManifest>
是在*Droid.csproj
文件中定义的(事实上,我也在netstandard csfile中设置了它)。
如何定义版本代码的MSBuild?
下面是我使用的完整的MSBuild命令:
msbuild -t:Clean -t:PackageForAndroid -p:AndroidPackageFormat=apk -p:ApplicationVersion="1.0" -p:AndroidVersionCode=101 -p:ApplicationId="cz.sebastian.myapp" -p:OutputPath="C:Packages" -p:Configuration=Release .MyApp.Droid.csproj
经过几次实际实验,我发现如下:
-
文档错误属性
AndroidVersionCode
不反映Android的版本代码,事实上,我没有发现它真正的用途。版本码只能通过ApplicationVersion
属性修改。 -
要真正更改版本代码,必须从
AndroidManifest.xml
中删除android:versionCode
。
综上所述:将android:versionCode
从Android清单中删除,并使用整数值的ApplicationVersion
。
MSBuild version 17.4.0+18d5aef85 for .NET Framework