1
versionNameからversionCodeを自動的に生成したいと考えています。 すべてのドットを削除したいです。MSBuildでxmlファイルを検索して置換する
:私はfollwoing BeforeBuildターゲットを追加しましたVSのcsprojファイル内だから、00交換 にXをtackeling始めました> 2050020- と2.05.X.20からだから、00の
としてXに置き換わりますこれの出力は私が
を試してみた<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="$(FoundVersionName)" android:versionName="2.05.X.20" android:installLocation="auto" package="mtdata_taxi_tablet.mtdata_taxi_tablet">
のように見えますが
<Target Name="BeforeBuild">
<!-- find the versionName in the file -->
<XmlPeek XmlInputPath="Properties\AndroidManifest.xml" Namespaces="<Namespace Prefix='android' Uri='http://schemas.android.com/apk/res/android' />" Query="manifest/@android:versionName">
<Output TaskParameter="Result" ItemName="FoundVersionName" />
</XmlPeek>
<!-- write the replaced versioncode to the file -->
<XmlPoke XmlInputPath="Properties\AndroidManifest.xml" Namespaces="<Namespace Prefix='android' Uri='http://schemas.android.com/apk/res/android' />" Query="manifest/@android:versionCode"
Value="$([System.String]::Copy($(FoundVersionName)).Replace('X','00')) " />
</Target>
- $([可能System.String] ::コピー($ {FoundVersionName})。) 'X'、 '00'(交換)
- $([可能System.String] ::コピー($(FoundVersionName) ( 'X'、 '00'))
- $([System.String] :: Copy($ X)、00))
- $([System。文字列] :: Copy(@FoundVersionName).Replace( 'X'、 '00'))
- $([System.String] :: Copy(FoundVersionName).Replace( 'X'、 '00'))
ただし、いずれも機能しません。
私は
- $(FoundVersionName)
アンドロイドを使用している場合:versionCodeは2.05.X.20
任意の考えに置き換えていますか?
で
を置き換えることによって、これを変更することができます!それはそれだった。 – clogwog