組建屬性
MSBuild 屬性會控制目標的行為。 這些專案是在 MSBuild PropertyGroup 內的項目檔內指定,例如 MyApp.csproj。
AdbTarget
屬性 $(AdbTarget)
會指定 Android 套件可安裝至或移除的 Android 目標裝置。
此屬性的值與 [目標裝置] 選項相同adb
。
AfterGenerateAndroidManifest
這個屬性中列出的 MSBuild 目標會直接在內部_GenerateJavaStubs
目標之後執行,也就是 在中$(IntermediateOutputPath)
產生檔案的位置AndroidManifest.xml
。 如果您想要對產生的 AndroidManifest.xml
檔案進行任何修改,可以使用這個延伸點來執行此作業。
Xamarin.Android 9.4 已新增此支援。
AndroidAapt2CompileExtraArgs
指定在處理 Android 資產和資源時傳遞至 aapt2 編譯 命令的命令行選項。
已在 Xamarin.Android 9.1 中新增。
AndroidAapt2LinkExtraArgs
指定在處理 Android 資產和資源時傳遞至 aapt2 連結 命令的命令行選項。
已在 Xamarin.Android 9.1 中新增。
AndroidAddKeepAlives
布爾值屬性,控制連結器是否會在系結專案內插入 GC.KeepAlive()
調用,以防止過早的物件集合。
預設值是 True
發行組態組建。
此屬性已在 Xamarin.Android 11.2 中新增。
AndroidAotAdditionalArguments
字串屬性,允許在具有 或 $(AotAssemblies)
設定true
為的專案$(AndroidEnableProfiledAot)
的工作Aot
期間,將選項傳遞至Mono編譯程式。
呼叫Mono跨編譯程式時,屬性的字串值會新增至回應檔。
一般而言,此屬性應該保留空白,但在某些特殊案例中,它可能會提供有用的彈性。
屬性 $(AndroidAotAdditionalArguments)
與相關 $(AndroidExtraAotOptions)
屬性不同; $(AndroidAotAdditionalArguments)
傳遞完整的獨立空格分隔選項,例如 --verbose
或 --debug
傳遞至 AOT 編譯程式,同時 $(AndroidExtraAotOptions)
包含逗號分隔自變數,這是 AOT 編譯程式選項的一部分 --aot
。
AndroidAotCustomProfilePath
應該建立以保存分析工具數據的檔案 aprofutil
。
AndroidAotProfiles
字串屬性,可讓開發人員從命令行新增AOT配置檔。 這是絕對路徑的分號或逗號分隔清單。 已在 Xamarin.Android 10.1 中新增。
AndroidAotProfilerPort
取得分析數據時應該連接的埠 aprofutil
。
AndroidAotEnableLazyLoad
啟用延遲(延遲)載入 AOTd 元件,而不是在啟動時預先載入它們。 預設值是 True
針對啟用任何形式的 AOT 的發行組建。
在 .NET 6 中引進。
AndroidApkDigestAlgorithm
字串值,指定要搭配 jarsigner -digestalg
使用的摘要演算法。
預設值是 SHA-256
。 在 Xamarin.Android 10.0 和更早版本中,預設值為 SHA1
。
Xamarin.Android 9.4 已新增此支援。
AndroidApkSignerAdditionalArguments
字串屬性,可讓開發人員提供工具的 apksigner
自變數。
已在 Xamarin.Android 8.2 中新增。
AndroidApkSigningAlgorithm
字串值,指定要搭配 jarsigner -sigalg
使用的簽署演算法。
預設值是 SHA256withRSA
。 在 Xamarin.Android 10.0 和更早版本中,預設值為 md5withRSA
。
已在 Xamarin.Android 8.2 中新增。
AndroidApplication
布爾值,指出專案是針對Android應用程式 (True
) 或Android連結庫專案 (False
或不存在)。
Android 套件內只能有一個具有 <AndroidApplication>True</AndroidApplication>
的專案。 (不幸的是,這項需求並未經過驗證,這可能會導致關於 Android 資源的細微和奇怪的錯誤。
AndroidApplicationJavaClass
當類別繼承自 Android.App.Application 時,要取代android.app.Application
的完整 Java 類別名稱。
屬性 $(AndroidApplicationJavaClass)
通常是由 其他 屬性所設定,例如 $(AndroidEnableMultiDex)
MSBuild 屬性。
已在 Xamarin.Android 6.1 中新增。
AndroidBinUtilsPath
包含 Android binutils 之目錄的路徑,例如 ld
、原生連結器,以及 as
原生組合器。 這些工具包含在 Xamarin.Android 安裝中。
預設值是 $(MonoAndroidBinDirectory)\binutils\bin\
。
已在 Xamarin.Android 10.0 中新增。
AndroidBoundExceptionType
字串值,指定當 Xamarin.Android 提供的型別實作 .NET 類型或介面時,應該如何傳播例外狀況,例如 Android.Runtime.InputStreamInvoker
和 System.IO.Stream
或 和 Android.Runtime.JavaDictionary
System.Collections.IDictionary
。
Java
:原始的 Java 例外狀況類型會依原樣傳播。Java
表示,例如,InputStreamInvoker
不會正確實System.IO.Stream
作 API,因為Java.IO.IOException
可能會從Stream.Read()
擲回 ,而不是System.IO.IOException
。Java
是所有 Xamarin.Android 版本中的例外狀況傳播行為,包括 Xamarin.Android 13.0。System
:原始的 Java 例外狀況類型會攔截並包裝在適當的 .NET 例外狀況類型中。System
表示,例如,InputStreamInvoker
正確實作System.IO.Stream
,而且Stream.Read()
不會擲回Java.IO.IOException
實例。 (它可能會擲回System.IO.IOException
,其中包含Java.IO.IOException
作為Exception.InnerException
值。System
是 .NET 6.0 中的預設值。
已在 Xamarin.Android 10.2 中新增。
AndroidBoundInterfacesContainConstants
布爾值屬性,決定是否支援介面上的系結常數,或使用建立 IMyInterfaceConsts
類別的因應措施。
預設值在 True
.NET 6 中,而 False
舊版則為 。
AndroidBoundInterfacesContainStaticAndDefaultInterfaceMethods
布林值屬性,不論介面上的預設和靜態成員是支援的,還是建立包含靜態成員的同層級類別的舊因應措施,例如 abstract class MyInterface
。
預設值在 True
.NET 6 中,而 False
舊版則為 。
AndroidBoundInterfacesContainTypes
布林值屬性,不論介面中巢狀類型是否支援,還是建立非巢狀類型的因應措施,例如 IMyInterfaceMyNestedClass
。
預設值在 True
.NET 6 中,而 False
舊版則為 。
AndroidBuildApplicationPackage
布爾值,指出是否要建立和簽署封裝 (.apk)。 將此值設定為 True
相當於使用 SignAndroidPackage
組建目標。
在 Xamarin.Android 7.1 之後已新增這個屬性的支援。
這個屬性的預設值是 False
。
AndroidBundleConfigurationFile
指定要在建置 Android 應用程式套件組合時用來作為組態檔bundletool
的檔名。 此檔案控制從套件組合產生 APK 的一些層面,例如,套件組合要分割哪些維度來產生 APK。
Xamarin.Android 會自動設定其中一些設定,包括要保持未壓縮的擴展名清單。
只有當 設定為 aab
時$(AndroidPackageFormat)
,這個屬性才相關。
已在 Xamarin.Android 10.3 中新增。
AndroidBundleToolExtraArgs
指定建置應用程式套件組合時要傳遞至 bundletool 命令的命令行選項。
此屬性已在 Xamarin.Android 11.3 中新增。
AndroidClassParser
字串屬性,控制檔案剖析的方式 .jar
。 可能的值包括:
class-parse:使用
class-parse.exe
來直接剖析 Java 位元組程式碼,而不需要 JVM 的協助。jar2xml:使用
jar2xml.jar
以使用 Java 反映來從.jar
檔案擷取類型和成員。
class-parse
相對於 jar2xml
的優勢在於:
class-parse
可以從包含 偵錯 符號的 Java 位元組程式代碼擷取參數名稱(使用 編譯的javac -g
位元組程式代碼)。class-parse
不會「略過」繼承自 或包含無法解析類型成員的類別。
已在 Xamarin.Android 6.0 中新增。
預設值位於 jar2xml
「legacy」 Xamarin.Android 和 class-parse
.NET 6 和更新版本中。
jar2xml
的支援已過時,且jar2xml
已在 .NET 6 中移除。
AndroidCodegenTarget
控制程式代碼產生目標 ABI 的字串屬性。 可能的值包括:
XamarinAndroid:使用自Mono for Android 1.0以來存在的 JNI 系結 API。 使用 Xamarin.Android 5.0 或更新版本所建置的繫結組件只可在 Xamarin.Android 5.0 或更新版本 (API/ABI 新增項目) 上執行,但「來源」與舊版產品相容。
XAJavaInterop1:在 JNI 引動過程使用 Java.Interop。 使用
XAJavaInterop1
的繫結組件只可使用 Xamarin.Android 6.1 或更新版本來建置及執行。 Xamarin.Android 6.1 及更新版本使用此值繫結Mono.Android.dll
。
XAJavaInterop1
的優點包括:
組件較小。
以
jmethodID
快取base
方法引動過程,但繼承階層中所有其他繫結類型皆必須使用XAJavaInterop1
或更新版本來建置。以
jmethodID
快取受控子類別的 Java 可呼叫包裝函式建構函式。
預設值是 XAJavaInterop1
。
XamarinAndroid
的支援已過時,且將移除 .NET 6 的一XamarinAndroid
部分。
AndroidCreatePackagePerAbi
布爾值屬性,決定是否應建立一組檔案---每個 ABI 所$(AndroidSupportedAbis)
指定的檔案集,而不是在單.apk
一 中支援所有 ABI。
另請參閱建置 ABI 特定 APK 指南。
AndroidCreateProguardMappingFile
布爾值屬性,可控制 Proguard 對應檔案是否在建置程式中產生。
將下列內容新增至您的 csproj 會導致產生檔案,並使用 AndroidProguardMappingFile
屬性來控制最終對應檔的位置。
<AndroidCreateProguardMappingFile>True</AndroidCreateProguardMappingFile>
產生 .aab
檔案時,對應檔案會自動包含在您的套件中。 不需要手動將它上傳至Google Play商店。 使用 .apk
檔案時, AndroidProguardMappingFile
必須手動上傳 。
預設值是 True
使用 $(AndroidLinkTool)
=r8 時。
已在 Xamarin.Android 12.3 中新增。
AndroidDebugKeyAlgorithm
指定要用於 debug.keystore
的預設演算法。 預設值是 RSA
。
AndroidDebugKeyValidity
指定要用於 debug.keystore
的預設有效性。 預設值為 10950
或 30 * 365
或 30 years
。
AndroidDebugStoreType
指定要用於的 debug.keystore
金鑰存放區檔案格式。 其預設為 pkcs12
。
已在 Xamarin.Android 10.2 中新增。
AndroidDeviceUserId
允許在來賓或工作帳戶下部署和偵錯應用程式。 此值是您 uid
從下列 adb 命令取得的值:
adb shell pm list users
上述命令會傳回下列資料:
Users:
UserInfo{0:Owner:c13} running
UserInfo{10:Guest:404}
uid
是第一個整數值。 在上述輸出中,它們是 0
和 10
。
屬性 $(AndroidDeviceUserId)
已在 Xamarin.Android 11.2 中新增。
AndroidDexTool
具有 或 d8
有效值的dx
列舉樣式屬性。 指出在 Xamarin.Android 建置程序期間使用哪一個 Android dex 編譯器。
預設值是 dx
。 請參閱我們的 D8 和 R8 檔。
AndroidEnableDesugar
布爾值屬性,決定是否 desugar
已啟用。 Android 目前不支援所有 Java 8 功能,而預設工具鏈會在編譯程式的輸出javac
上執行稱為的位元組程式代碼轉換desugar
,以實作新的語言功能。 如果使用 ,則預設值為 False
,如果使用 ,則為$(AndroidDexTool)
。True
=d8
$(AndroidDexTool)=dx
AndroidEnableGooglePlayStoreChecks
bool 屬性,可讓開發人員停用下列 Google Play 商店檢查:XA1004、XA1005 和 XA1006。 停用這些檢查對不是以Google Play商店為目標且不想執行這些檢查的開發人員很有用。
Xamarin.Android 9.4 已新增此支援。
AndroidEnableMultiDex
布爾值屬性,決定是否要在最後 .apk
一個 中使用多重索引支援。
在 Xamarin.Android 5.1 中已新增這個屬性的支援。
這個屬性的預設值是 False
。
AndroidEnablePreloadAssemblies
布爾值屬性,可控制應用程式封裝內所有受管理元件是否在進程啟動期間載入。
設定為 True
時,就會在流程啟動期間先載入應用程式套件內隨附的所有組件,然後再叫用任何應用程式程式碼。
預先載入元件是 Xamarin.Android 的功能。
設定為 False
時,組件將只會在需要時載入。
視需要載入元件可讓應用程式更快啟動,而且也與桌面 .NET 語意更一致。
若要查看省下的時間,請設定 debug.mono.log
系統屬性以包括 timing
,並在 adb logcat
內尋找 Finished loading assemblies: preloaded
訊息。
使用相依性插入的應用程式或連結庫可能需要此屬性True
,如果它們接著需要AppDomain.CurrentDomain.GetAssemblies()
傳回應用程式套件組合內的所有元件,即使不需要元件也一樣。
根據預設,此值會針對 Xamarin.Android 設定為 True
,並將 設定為 False
.NET 6+ 組建。
已在 Xamarin.Android 9.2 中新增。
AndroidEnableProfiledAot
布爾值屬性,決定在預先編譯期間是否使用 AOT 配置檔。
配置檔列於 @(AndroidAotProfile)
專案群組。 此 ItemGroup 包含預設設定檔。 您可以藉由移除現有的 AOT 設定檔並新增您自己的 AOT 設定檔來覆寫它。
Xamarin.Android 9.4 已新增此屬性支援。
這個屬性的預設值是 False
。
AndroidEnableSGenConcurrent
布爾值屬性,決定是否要使用Mono的 並行 GC 收集器 。
在 Xamarin.Android 7.2 中已新增這個屬性的支援。
這個屬性的預設值是 False
。
AndroidErrorOnCustomJavaObject
布林值屬性,判斷型別是否可以實 Android.Runtime.IJavaObject
作而不 繼承自 Java.Lang.Object
或 Java.Lang.Throwable
:
class BadType : IJavaObject {
public IntPtr Handle {
get {return IntPtr.Zero;}
}
public void Dispose()
{
}
}
當為 True 時,這類類型會產生 XA4212 錯誤,否則會產生 XA4212 警告。
在 Xamarin.Android 8.1 中已新增這個屬性的支援。
這個屬性的預設值是 True
。
AndroidExplicitCrunch
Xamarin.Android 11.0 不再支援。
AndroidExtraAotOptions
字串屬性,允許在具有 或 $(AotAssemblies)
設定true
為的專案$(AndroidEnableProfiledAot)
的工作Aot
期間,將選項傳遞至Mono編譯程式。
呼叫Mono跨編譯程式時,屬性的字串值會新增至回應檔。
一般而言,此屬性應該保留空白,但在某些特殊案例中,它可能會提供有用的彈性。
屬性與相關$(AndroidAotAdditionalArguments)
屬性不同;$(AndroidAotAdditionalArguments)
會將$(AndroidExtraAotOptions)
逗號分隔的自變數--aot
放在Mono編譯程式的選項中。 $(AndroidExtraAotOptions)
而是將完整的獨立空間分隔選項,例如 --verbose
或 --debug
傳遞給編譯程式。
已在 Xamarin.Android 10.2 中新增。
AndroidFastDeploymentType
:
以冒號分隔的值清單,可控制當 MSBuild 屬性為 False
時$(EmbedAssembliesIntoApk)
,哪些類型可以部署到目標裝置上的快速部署目錄。 資源如果使用快速部署,則不會內嵌到所產生的 .apk
,從而可加快部署時間 (部署速度越快,重建所需的頻率 .apk
越少,安裝程式可能更快。有效值包括:
Assemblies
:部署應用程式組件。Dexes
:部署.dex
檔案、原生連結庫和 typemap。Dexes
值只能在執行 Android 4.4 或更新版本的裝置上使用(API-19)。
預設值是 Assemblies
。
認可 f0d565fe 已移除透過該系統快速部署資源和資產的支援。 這是因為需要使用已被取代的 API 才能運作。
實驗。 此屬性已在 Xamarin.Android 6.1 中新增。
AndroidFragmentType
指定在產生配置繫結程式碼時,要用於所有 <fragment>
配置元素的預設完整類型。 預設值為標準 Android Android.App.Fragment
類型。
AndroidGenerateJniMarshalMethods
布爾屬性,可在建置過程中產生 JNI 封送處理方法。 這可大幅減少 System.Reflection
系結協助程式程式代碼中的使用量。
預設值是 False
。 如果開發人員想要使用新的 JNI 封送處理方法功能,他們可以設定
<AndroidGenerateJniMarshalMethods>True</AndroidGenerateJniMarshalMethods>
在中的 .csproj
。 或者,透過下列參數在命令列上提供屬性:
/p:AndroidGenerateJniMarshalMethods=True
實驗。 已在 Xamarin.Android 9.2 中新增。
預設值是 False
。
AndroidGenerateJniMarshalMethodsAdditionalArguments
字串屬性,可用來將參數jnimarshalmethod-gen.exe
加入調用中,而且可用於偵錯,因此可以使用、 或 --keeptemp
等-v
-d
選項。
預設值為空字串。 它可以在檔案或 .csproj
命令行上設定。 例如:
<AndroidGenerateJniMarshalMethodsAdditionalArguments>-v -d --keeptemp</AndroidGenerateJniMarshalMethodsAdditionalArguments>
or:
/p:AndroidGenerateJniMarshalMethodsAdditionalArguments="-v -d --keeptemp"
已在 Xamarin.Android 9.2 中新增。
AndroidGenerateLayoutBindings
如果設定為 ,則啟用配置程式代碼後置的產生,如果設定false
為 true
,則完全停用。 預設值是 false
。
AndroidGenerateResourceDesigner
預設值是 true
。 當 設定為 false
時,會停用的 Resource.designer.cs
產生。
已在 .NET 6 RC 1 中新增。 Xamarin.Android 不支援。
AndroidHttpClientHandlerType
控制預設建System.Net.Http.HttpClient
構函式將使用的預設System.Net.Http.HttpMessageHandler
實作。 該值為 HttpMessageHandler
子類別的組件限定類型名稱,適合搭配 System.Type.GetType(string)
使用。
此屬性最常見的值:
Xamarin.Android.Net.AndroidClientHandler
:使用Android Java API 來執行網路要求。 當基礎 Android 版本支援 TLS 1.2 時,使用 Java API 允許存取 TLS 1.2 URL。 只有 Android 5.0 及更新版本能夠可靠地透過 Java 提供 TLS 1.2 支援。對應至 Visual Studio 屬性頁中的 Android 選項,以及 Visual Studio for Mac 屬性頁中的 AndroidClientHandler 選項。
當 Visual Studio 中的 [Android 最低版本] 設定為 [Android 5.0 (Lollipop)] 或更高版本,或當 Visual Studio for Mac 中的 [目標平台] 設定為 [最新及最高] 時,[新增專案精靈] 會為新專案選取此選項。
取消設定/空字串,相當於
System.Net.Http.HttpClientHandler, System.Net.Http
對應至 Visual Studio 屬性頁中的 [預設 ] 選項。
當 Visual Studio 中的 [Android 最低版本] 設定為 [Android 4.4.87] 或更低版本,或當 Visual Studio for Mac 中的 [目標平台] 設定為 [新式開發] 或 [相容性上限] 時,[新增專案精靈] 會為新專案選取此選項。
System.Net.Http.HttpClientHandler, System.Net.Http
:使用 ManagedHttpMessageHandler
。對應至 Visual Studio 屬性頁中的 Managed 選項。
注意
若 5.0 版以前的 Android 需要 TLS 1.2 支援,「或者」System.Net.WebClient
和相關的 API 需要 TLS 1.2 支援,則應使用 $(AndroidTlsProvider)
。
注意
支援 $(AndroidHttpClientHandlerType)
屬性的運作方式是設定 XA_HTTP_CLIENT_HANDLER_TYPE
環境變數。
$XA_HTTP_CLIENT_HANDLER_TYPE
在檔案中找到的值,其建置動作為@(AndroidEnvironment)
會優先使用。
已在 Xamarin.Android 6.1 中新增。
AndroidIncludeWrapSh
布爾值,指出Android包裝函式腳本 (wrap.sh
) 是否應該封裝到 APK 中。 默認值為 false
,因為包裝函式腳本可能會大幅影響應用程式啟動和運作的方式,而且只有在需要時才包含腳本,例如偵錯或變更應用程式啟動/運行時間行為時。
腳本會使用 新增至專案 @(AndroidNativeLibrary)
建置動作,因為它會放在與架構特定原生連結庫相同的目錄中,而且必須命名為 wrap.sh
。
指定文稿路徑 wrap.sh
最簡單的方式,就是將它放在以目標架構命名的目錄中。 如果您每個架構只有一個 wrap.sh
,此方法將會運作:
<AndroidNativeLibrary Include="path/to/arm64-v8a/wrap.sh" />
不過,如果您的專案需要每個架構一個 wrap.sh
以上的架構,則此方法將無法運作。
相反地,在這種情況下,可以使用 的AndroidNativeLibrary
元數據來指定Link
名稱:
<AndroidNativeLibrary Include="/path/to/my/arm64-wrap.sh">
<Link>lib\arm64-v8a\wrap.sh</Link>
</AndroidNativeLibrary>
Link
如果使用元數據,其值中指定的路徑必須是相對於 APK 根目錄的有效原生架構特定連結庫路徑。 路徑的格式可以是lib\ARCH\wrap.sh
ARCH
下列其中之一:
arm64-v8a
armeabi-v7a
x86_64
x86
AndroidJavadocVerbosity
指定在系結項目中匯入 Javadoc 檔時,應該如何「詳細資訊」 C# XML 檔批注 。
需要使用 @(JavaSourceJar)
建置動作。
屬性 $(AndroidJavadocVerbosity)
類似列舉,其可能值為 full
或 intellisense
:
intellisense
:只發出 XML 批注:<exception/>
、、<returns/>
<param/>
、<summary/>
。full
:發出intellisense
專案,以及<remarks/>
、<seealso/>
,以及支援的任何其他專案。
預設值是 intellisense
。
已在 Xamarin.Android 11.3 中新增此屬性的支援。
AndroidKeyStore
布爾值,指出是否應該使用自定義簽署資訊。 預設值是 False
,也就是會使用預設的偵錯簽署金鑰來簽署套件。
AndroidLaunchActivity
要啟動的 Android 活動。
AndroidLinkMode
指定應該在 Android 套件中包含的元件上執行哪種連結類型。 僅限用於 Android 應用程式專案內。 預設值是 SdkOnly。 有效值為:
無:不會嘗試任何連結。
SdkOnly:只會對基底類別庫執行連結,而不會對使用者的組件執行。
完整:會對基底類別庫和使用者組件執行連結。
注意
若使用的
AndroidLinkMode
值為 Full,通常會導致應用程式損壞,特別是在使用了「反映」時。 除非您確實了解您正在執行的動作,否則請避免使用此值。
<AndroidLinkMode>SdkOnly</AndroidLinkMode>
AndroidLinkResources
當 為 時 true
,建置系統會連結所有元件中Resource.Designer.cs Resource
類別的巢狀類型。 使用這些類型的 IL 程式代碼將會更新為直接使用值,而不是存取欄位。
連結巢狀類型可能會對減少 apk 大小產生很小的影響,也可以協助啟動效能。 只有「發行」組建已連結。
實驗。 僅設計來使用程式代碼,例如
var view = FindViewById(Resources.Ids.foo);
不支援任何其他案例(例如反映)。
已在 Xamarin.Android 11.3 中新增此屬性的支援
AndroidLinkSkip
指定不應該連結之元件的分號分隔清單,;
不含擴展名的元件名稱。 僅限用於 Android 應用程式專案內。
<AndroidLinkSkip>Assembly1;Assembly2</AndroidLinkSkip>
AndroidLinkTool
具有 或 r8
有效值的proguard
列舉樣式屬性。 指出哪一個程式碼壓縮工具用於 Java 程式碼。 預設值為空字串,如果為 ,則proguard
$(AndroidEnableProguard)
為 True
。 請參閱我們的 D8 和 R8 檔。
AndroidLintEnabled
bool 屬性,可讓開發人員在封裝程式中執行Android lint
工具。
當 =True 時 $(AndroidLintEnabled)
,會使用下列屬性:
也可以使用下列建置動作:
如需 Android lint
工具的詳細資料,請參閱 Lint 說明。
AndroidLintEnabledIssues
字串屬性,這是要啟用之lint問題的逗號分隔清單。
只有在 =True 時才 $(AndroidLintEnabled)
使用。
AndroidLintDisabledIssues
字串屬性,這是要停用之lint問題的逗號分隔清單。
只有在 =True 時才 $(AndroidLintEnabled)
使用。
AndroidLintCheckIssues
字串屬性,這是要檢查之lint問題的逗號分隔清單。
只有在 =True 時才 $(AndroidLintEnabled)
使用。
注意:只會檢查這些問題。
AndroidManagedSymbols
布爾值屬性,可控制是否產生序列點,以便從堆疊追蹤擷取 Release
檔名和行號資訊。
已在 Xamarin.Android 6.1 中新增。
AndroidManifest
指定要作為應用程式範本的 AndroidManifest.xml
檔案名。
建置期間會合併任何其他必要值以產生實際的 AndroidManifest.xml
。
$(AndroidManifest)
必須在 /manifest/@package
屬性中包含套件名稱。
AndroidManifestMerger
指定合併 AndroidManifest.xml 檔案的實作。 這是列舉樣式屬性,其中 legacy
會選取原始 C# 實作,並 manifestmerger.jar
選取 Google 的 Java 實作。
預設值目前 legacy
為 。 這會在未來版本中變更為 manifestmerger.jar
,以配合 Android Studio 的行為。
Google 的合併支援,xmlns:tools="http://schemas.android.com/tools"
如 Android 檔所述。
Xamarin.Android 10.2 中引進
AndroidManifestMergerExtraArgs
提供 Android 檔案工具自變數的字串屬性。
如果您要工具的詳細輸出,您可以將下列內容新增至 .csproj
。
<AndroidManifestMergerExtraArgs>--log VERBOSE</AndroidManifestMergerExtraArgs>
Xamarin.Android 11.x 中引進
AndroidManifestType
具有 或 GoogleV2
有效值的Xamarin
列舉樣式屬性。
這會控制 所使用的存放庫 InstallAndroidDependencies
目標可判斷哪些 Android 套件和套件版本可供使用,而且可以安裝。
Xamarin
是 Visual Studio SDK 管理員內的核准清單 (建議) 存放庫。
GoogleV2
是 Visual Studio SDK 管理員內的完整清單(不支援)存放庫。
已在 Xamarin.Android 13.0 中新增。 Xamarin.Android 13.0 中,如果未 $(AndroidManifestType)
設定,則會 Xamarin
使用 。
在 Xamarin.Android 13.0 之前,設定 $(AndroidManifestType)
沒有任何作用,而且 GoogleV2
會使用。
AndroidManifestPlaceholders
AndroidManifest.xml的索引鍵/值取代組分號分隔清單,其中每個組都有 格式 key=value
。
例如,的 assemblyName=$(AssemblyName)
屬性值會定義一個 ${assemblyName}
佔位元,然後會出現在 AndroidManifest.xml:
<application android:label="${assemblyName}"
這可讓您將建置程式中 的變數插入AndroidManifest.xml 檔案中。
AndroidMultiDexClassListExtraArgs
字串屬性,可讓開發人員在產生multidex.keep
檔案時將自變數傳遞至 com.android.multidex.MainDexListBuilder
。
其中一個特定情況是您在 dx
編譯期間收到下列錯誤時。
com.android.dex.DexException: Too many classes in --main-dex-list, main dex capacity exceeded
如果您收到此錯誤,您可以將下列內容新增至 .csproj
。
<DxExtraArguments>--force-jumbo </DxExtraArguments>
<AndroidMultiDexClassListExtraArgs>--disable-annotation-resolution-workaround</AndroidMultiDexClassListExtraArgs>
這可讓 dx
步驟成功。
已在 Xamarin.Android 8.3 中新增。
AndroidPackageFormat
具有 或 aab
有效值的apk
列舉樣式屬性。 指出您是否要將 Android 應用程式封裝為 APK 檔案 或 Android 應用程式套件組合。 應用程式套件組合是 Release
的新格式,專供 Google Play 中的提交之用。 預設值是 apk
。
當 $(AndroidPackageFormat)
的設定為 aab
時,將會一併設定 Android 應用程式套件組合所需的其他 MSBuild 屬性:
$(AndroidUseAapt2)
為True
。$(AndroidUseApkSigner)
為False
。$(AndroidCreatePackagePerAbi)
為False
。
此屬性將會針對 .net 6 淘汰。 使用者應該切換至較新的 AndroidPackageFormats
。
AndroidPackageFormats
具有和 aab
有效值的apk
分號分隔屬性。
指出您是否要將 Android 應用程式封裝為 APK 檔案 或 Android 應用程式套件組合。 應用程式套件組合是 Release
的新格式,專供 Google Play 中的提交之用。
建置發行組建時,您可能會想要同時產生 和 和 aab
apk
,以便散發到各種存放區。
將設定 AndroidPackageFormats
為 aab;apk
將會產生這兩者。 將設定 AndroidPackageFormats
為 aab
或 apk
只會產生一個檔案。
針對 .net 6AndroidPackageFormats
,只會針對組建設定為 Release
aab;apk
。 建議您繼續使用進行偵 apk
錯。
對於舊版 Xamarin.Android,預設值為 ""
。
因此,舊版 Xamarin.Android 預設不會同時產生這兩者作為發行組建的一部分。 如果使用者想要產生這兩個輸出,則必須在其設定中 Release
定義下列內容。
<AndroidPackageFormats>aab;apk</AndroidPackageFormats>
如果您有該組態,您也必須移除該組態的現有 AndroidPackageFormat
。
已在 Xamarin.Android 11.5 中新增。
AndroidPackageNamingPolicy
列舉樣式屬性,用於指定所產生 Java 原始程式碼的 Java 套件名稱。
在 Xamarin.Android 10.2 和更新版本中,唯一支援的值是 LowercaseCrc64
。
在 Xamarin.Android 10.1 中,也提供過渡 LowercaseMD5
值,允許切換回原始 Java 套件名稱樣式,如 Xamarin.Android 10.0 和更早版本使用。 該選項已在 Xamarin.Android 10.2 中移除,以改善與強制執行 FIPS 合規性的組建環境的相容性。
已在 Xamarin.Android 10.1 中新增。
AndroidProguardMappingFile
指定的 -printmapping
r8
Proguard 規則。 這表示 mapping.txt
檔案將會在 $(OutputPath)
資料夾中產生。 然後將套件上傳至Google Play商店時,可以使用此檔案。
根據預設,這個檔案會在使用 AndroidLinkTool=r8
時自動產生,並會產生下列檔案 $(OutputPath)mapping.txt
。
如果您不想產生此對應檔案,您可以使用 AndroidCreateProguardMappingFile
屬性停止建立它。
在您的專案中新增下列內容
<AndroidCreateProguardMappingFile>False</AndroidCreateProguardMappingFile>
-p:AndroidCreateProguardMappingFile=False
或在命令列上使用 。
此屬性已在 Xamarin.Android 11.2 中新增。
AndroidR8IgnoreWarnings
指定的 -ignorewarnings
r8
Proguard 規則。 即使遇到特定警告,這仍允許 r8
繼續進行 dex 編譯。 默認值為 True
,但可以設定為 以 False
強制執行更嚴格的行為。 如需詳細資訊, 請參閱 ProGuard 手冊 。
已在 Xamarin.Android 10.3 中新增。
AndroidR8JarPath
要與 r8 dex-compiler 和 shrinker 搭配使用的路徑 r8.jar
。 預設值是 Xamarin.Android 安裝中的路徑。 如需進一步的詳細資訊,請參閱有關 D8 和 R8 的文件。
AndroidResgenExtraArgs
指定要在處理 Android 資產和資源時傳遞至 aapt 命令的命令行選項。
AndroidResgenFile
指定要產生之資源檔的名稱。 預設範本會將此值設定為 Resource.designer.cs
。
AndroidSdkBuildToolsVersion
Android SDK 建置工具套件提供 aapt 和 zipalign 工具等。 您可以同時安裝建置工具套件的多個不同版本。 如果「慣用的」建置工具版本存在,可藉由檢查及使用該版本來完成選擇要封裝的建置工具套件,如果「慣用的」版本不存在,則會使用已安裝的建置工具套件中版本最高者。
$(AndroidSdkBuildToolsVersion)
MSBuild 屬性包含慣用的建置工具版本。 Xamarin.Android 建置系統會在 Xamarin.Android.Common.targets
中提供預設值,而如果 (舉例來說) 最新的 aapt 損毀但您知道有舊版 aapt 能夠正常運作,則可以在專案檔內複寫此預設值,以選擇其他建置工具版本。
AndroidSigningKeyAlias
指定金鑰存放區中金鑰的別名。 這是在建立金鑰儲存區時所使用的 keytool -alias 值。
AndroidSigningKeyPass
指定金鑰存放區檔案內金鑰的密碼。 這是在 keytool
要求輸入 $(AndroidSigningKeyAlias) 的金鑰密碼時所輸入的值。
在 Xamarin.Android 10.0 和更早版本中,此屬性僅支援純文本密碼。
在 Xamarin.Android 10.1 和更新版本中,此屬性也支援 env:
和 file:
前置詞,可用來指定包含密碼的環境變數或檔案。 這些選項提供防止密碼出現在組建記錄中的方式。
例如,若要使用名為 AndroidSigningPassword 的環境變數:
<PropertyGroup>
<AndroidSigningKeyPass>env:AndroidSigningPassword</AndroidSigningKeyPass>
</PropertyGroup>
若要使用位於 的 C:\Users\user1\AndroidSigningPassword.txt
檔案:
<PropertyGroup>
<AndroidSigningKeyPass>file:C:\Users\user1\AndroidSigningPassword.txt</AndroidSigningKeyPass>
</PropertyGroup>
注意
當 設定為 aab
時$(AndroidPackageFormat)
,不支援前置env:
詞。
AndroidSigningKeyStore
指定 所 keytool
建立之金鑰存放區檔案的檔名。 這會對應至提供給 keytool -keystore 選項的值。
AndroidSigningStorePass
將密碼指定為 $(AndroidSigningKeyStore)
。
這是在建立金鑰儲存區檔案時提供給 keytool
,並且會要求輸入金鑰儲存區密碼: 的值。
在 Xamarin.Android 10.0 和更早版本中,此屬性僅支援純文本密碼。
在 Xamarin.Android 10.1 和更新版本中,此屬性也支援 env:
和 file:
前置詞,可用來指定包含密碼的環境變數或檔案。 這些選項提供防止密碼出現在組建記錄中的方式。
例如,若要使用名為 AndroidSigningPassword 的環境變數:
<PropertyGroup>
<AndroidSigningStorePass>env:AndroidSigningPassword</AndroidSigningStorePass>
</PropertyGroup>
若要使用位於 的 C:\Users\user1\AndroidSigningPassword.txt
檔案:
<PropertyGroup>
<AndroidSigningStorePass>file:C:\Users\user1\AndroidSigningPassword.txt</AndroidSigningStorePass>
</PropertyGroup>
注意
當 設定為 aab
時$(AndroidPackageFormat)
,不支援前置env:
詞。
AndroidSigningPlatformKey
指定要用來簽署 apk 的金鑰檔案。
這隻會在建 system
置應用程式時使用。
已在 Xamarin.Android 11.3 中新增此屬性的支援。
AndroidSigningPlatformCert
指定要用來簽署 apk 的憑證檔案。
這隻會在建 system
置應用程式時使用。
已在 Xamarin.Android 11.3 中新增此屬性的支援。
AndroidSupportedAbis
字串屬性,其中包含應該包含在 中.apk
以分號分隔;
的 API 清單。
支援的值包括:
armeabi-v7a
x86
arm64-v8a
:需要 Xamarin.Android 5.1 和更新版本。x86_64
:需要 Xamarin.Android 5.1 和更新版本。
AndroidTlsProvider
字串值,指定應用程式應該使用哪一個 TLS 提供者。 可能的值包括:
取消設定/空字串:在 Xamarin.Android 7.3 和更新版本中,這相當於
btls
。在 Xamarin.Android 7.1 中,這相當於
legacy
。這對應到 Visual Studio屬性頁中的 [預設] 設定。
btls
:使用 Boring SSL 以利用 HttpWebRequest 進行 TLS 通訊。這允許在所有的 Android 版本上使用 TLS 1.2。
這對應到 Visual Studio 屬性頁中的 [原生 TLS 1.2+] 設定。
legacy
:在 Xamarin.Android 10.1 和更早版本中,使用歷史受控 SSL 實作來進行網路互動。 這 不支援 TLS 1.2。這對應到 Visual Studio 屬性頁中的 [原生 TLS 1.0] 設定。
在 Xamarin.Android 10.2 和更新版本中,會忽略此值,並使用
btls
設定。default
:此值不太可能用於 Xamarin.Android 專案中。 建議改用對應到 Visual Studio 屬性頁中之 [預設] 設定的空字串值。Visual Studio 屬性頁不提供
default
值。目前此值等同於
legacy
。
在 Xamarin.Android 7.1 中已新增。
AndroidUseAapt2
布爾值屬性,可讓開發人員控制工具的 aapt2
封裝用法。
根據預設,這會是 False,而 Xamarin.Android 會使用 aapt
。
如果開發人員想要使用新功能 aapt2
,請新增:
<AndroidUseAapt2>True</AndroidUseAapt2>
在中的 .csproj
。 或者,在命令行上提供 屬性:
/p:AndroidUseAapt2=True
此屬性已在 Xamarin.Android 8.3 中新增。 設定 AndroidUseAapt2
為 false
在 Xamarin.Android 11.2 中已被取代。
AndroidUseApkSigner
布林屬性,可讓開發人員使用 apksigner
工具,而不是 jarsigner
。
已在 Xamarin.Android 8.2 中新增。
AndroidUseDefaultAotProfile
bool 屬性,可讓開發人員隱藏預設 AOT 配置檔的使用方式。
若要隱藏預設的 AOT 設定檔,請將 屬性設定為 false
。
已在 Xamarin.Android 10.1 中新增。
AndroidUseInterpreter
布爾值屬性,導致 .apk
包含mono 解釋器,而不是一般 JIT。
實驗。
已在 Xamarin.Android 11.3 中新增此屬性的支援。
AndroidUseLegacyVersionCode
布爾值屬性,可讓開發人員將versionCode計算還原回其舊版 Xamarin.Android 8.2 行為。 這應該「僅」針對 Google Play 商店中擁有現有應用程式的開發人員使用。 強烈建議使用新的 $(AndroidVersionCodePattern)
屬性。
已在 Xamarin.Android 8.2 中新增。
AndroidUseManagedDesignTimeResourceGenerator
布林值屬性,會切換設計時間建置以使用 Managed 資源剖析器,而不是 aapt
。
已在 Xamarin.Android 8.1 中新增。
AndroidUseSharedRuntime
布爾值屬性,決定是否需要 共用運行時間套件 ,才能在目標裝置上執行應用程式。 依賴共用執行階段套件可讓應用程式套件小一些、加快套件的建立和部署程序速度,進而提升建置/部署/偵錯往返循環速度。
在 Xamarin.Android 11.2 之前,此屬性應該 True
適用於偵錯組建,以及 False
發行專案。
此屬性已在 Xamarin.Android 11.2 中移除 。
AndroidVersionCode
MSBuild 屬性,可用來做為 檔案中的AndroidManifest.xml
替代方案/manifest/@android:versionCode
。 若要加入此功能,您必須開啟 <GenerateApplicationManifest>true</GenerateApplicationManifest>
。
這將是 .NET 6 中的預設值。
如果使用 $(AndroidCreatePackagePerAbi)
和 $(AndroidVersionCodePattern)
,則會忽略這個屬性。
@android:versionCode
是每個Google Play版本必須遞增的整數值。 如需 需求的詳細數據,/manifest/@android:versionCode
請參閱 Android 檔。
已在 Xamarin.Android 11.3 中新增此屬性的支援。
AndroidVersionCodePattern
字串屬性,可讓開發人員自訂 versionCode
指令清單中的 。
如需有關決定 versionCode
的資訊,請參閱為 APK 建立版本代碼。
一些範例,如果 abi
是 armeabi
且資訊清單中的 versionCode
是 123
,則在 $(AndroidCreatePackagePerAbi)
為 True 時,{abi}{versionCode}
會產生 1123
的 versionCode,否則會產生 123 的值。
如果 abi
是 x86_64
且資訊清單中的 versionCode
是 44
。 當 $(AndroidCreatePackagePerAbi)
為 True 時,這會產生 544
,否則會產生 44
的值。
如果我們納入左側填補格式字串 {abi}{versionCode:0000}
,它會產生 50044
,因為我們會在 versionCode
左側填補 0
。 或者,您也可以使用小數點填補 (例如 ),{abi}{versionCode:D4}
與上一個範例相同。
因為此值「必須」是整數,所以僅支援 '0' 和 'Dx' 填補格式字串。
預先定義的索引鍵項目
abi – 插入應用程式的目標 abi
- 2 –
armeabi-v7a
- 3 –
x86
- 4 –
arm64-v8a
- 5 –
x86_64
- 2 –
minSDK – 從
AndroidManifest.xml
中插入支援的最小 Sdk 值,如果沒有11
定義,則為 。versionCode – 直接從
Properties\AndroidManifest.xml
使用版本代碼。
您可使用 $(AndroidVersionCodeProperties)
屬性 (於下一步定義) 定義自訂項目。
根據預設,值會設定為 {abi}{versionCode:D6}
。 如果開發人員想要保留舊的行為,則您可以將 $(AndroidUseLegacyVersionCode)
屬性設定為 true
來覆寫預設值
已在 Xamarin.Android 7.2 中新增。
AndroidVersionCodeProperties
字串屬性,可讓開發人員定義要搭配 $(AndroidVersionCodePattern)
使用的自定義專案。
其格式為 key=value
組。 value
中的所有項目都應該是整數值。 例如: screen=23;target=$(_AndroidApiLevel)
。 如您所見,您可以在字串中利用現有或自訂的 MSBuild 屬性。
已在 Xamarin.Android 7.2 中新增。
ApplicationId
MSBuild 屬性,可用來做為 檔案中的AndroidManifest.xml
替代方案/manifest/@package
。 若要加入此功能,您必須開啟 <GenerateApplicationManifest>true</GenerateApplicationManifest>
。
這將是 .NET 6 中的預設值。
如需 需求的詳細數據,/manifest/@package
請參閱 Android 檔。
已在 Xamarin.Android 11.3 中新增此屬性的支援。
ApplicationTitle
MSBuild 屬性,可用來做為 檔案中的AndroidManifest.xml
替代方案/manifest/application/@android:label
。 若要加入此功能,您必須開啟 <GenerateApplicationManifest>true</GenerateApplicationManifest>
。
這將是 .NET 6 中的預設值。
如需 需求的詳細數據,/manifest/application/@android:label
請參閱 Android 檔。
已在 Xamarin.Android 11.3 中新增此屬性的支援。
ApplicationVersion
MSBuild 屬性,可用來做為 檔案中的AndroidManifest.xml
替代方案/manifest/@android:versionName
。 若要加入此功能,您必須開啟 <GenerateApplicationManifest>true</GenerateApplicationManifest>
。
這將是 .NET 6 中的預設值。
如需 需求的詳細數據,/manifest/@android:versionName
請參閱 Android 檔。
已在 Xamarin.Android 11.3 中新增此屬性的支援。
AotAssemblies
布爾值屬性,決定元件是否會預先編譯成機器碼,並包含在 中 .apk
。
在 Xamarin.Android 5.1 中已新增這個屬性的支援。
這個屬性的預設值是 False
。
AProfUtilExtraOptions
傳遞至 aprofutil
的額外選項。
BeforeGenerateAndroidManifest
這個屬性中列出的 MSBuild 目標會在 之前 _GenerateJavaStubs
直接執行。
Xamarin.Android 9.4 已新增此支援。
組態
指定要使用的組建組態,例如「偵錯」或「發行」。 組態屬性可用來決定其他會決定目標行為之屬性的預設值。 您可以在 IDE 內建立其他組態。
根據預設,組 Debug
態會產生 Install
和 SignAndroidPackage
目標建立較小的Android套件,需要有其他檔案和套件才能運作。
默認 Release
組態會導致 Install
和 SignAndroidPackage
目標是建立獨立的 Android 套件,而且不需安裝任何其他套件或檔案即可使用。
DebugSymbols
布爾值,決定Android套件是否可偵錯,結合 $(DebugType)
屬性。
可偵錯套件包含偵錯符號、將 //application/@android:debuggable
屬性 設定為 true
,並自動新增 INTERNET
許可權,讓調試程式可以附加至進程。 如果 DebugSymbols
是 True
且 DebugType
是空字串或 Full
,則應用程式可偵錯。
DebugType
指定要 在組建中產生之偵錯符號 的類型,這也會影響應用程式是否可偵錯。 可能的值包括:
完整:產生完整符號。 如果
DebugSymbols
MSBuild 屬性也是True
,然後應用程式套件是可偵錯的。PdbOnly:產生 "PDB" 符號。 應用程式套件無法偵錯。
如果 DebugType
未設定或者是空字串,則 DebugSymbols
屬性會控制應用程式是否可偵錯。
EmbedAssembliesIntoApk
布爾值屬性,決定應用程式元件是否應該內嵌到應用程式套件中。
如果是發行組建,這個屬性應該是 True
,如果是偵錯組建,則應該是 False
。 如果快速部署不支援目標裝置,則在偵錯組建中,這個屬性可能需為 True
。
當這個屬性為 False
時,則 $(AndroidFastDeploymentType)
MSBuild 屬性也會控制將內嵌至 .apk
的內容,這可能會影響部署和重建時間。
EnableLLVM
布爾值屬性,決定在預先將元件編譯成機器碼時,是否要使用 LLVM。
必須安裝 Android NDK,才能建置已啟用此屬性的專案。
在 Xamarin.Android 5.1 中已新增這個屬性的支援。
這個屬性的預設值是 False
。
除非 $(AotAssemblies)
MSBuild 屬性為 True
,否則會忽略這個屬性。
EnableProguard
布爾值屬性,決定 proguard 是否在封裝程式中執行,以連結 Java 程式代碼。
在 Xamarin.Android 5.1 中已新增這個屬性的支援。
這個屬性的預設值是 False
。
當 為 時 True
, 將會使用 @(ProguardConfiguration) 檔案來控制 proguard
執行。
GenerateApplicationManifest
啟用或停用下列 MSBuild 屬性,以發出最終 AndroidManifest.xml
檔案中的值:
默認值 $(GenerateApplicationManifest)
位於 true
.NET 6 和 false
“legacy” Xamarin.Android 中。
已在 Xamarin.Android 11.3 中新增此屬性的支援。
JavaMaximumHeapSize
指定在封裝過程中建.dex
置檔案時要使用的jaVA-Xmx
參數值值。 如果未指定,則 -Xmx
選項會為 java 提供值 1G
。 相較於其他平台,這在 Windows 上通常是必要項目。
藉由變更下列項目來自訂值:
<JavaMaximumHeapSize>1G</JavaMaximumHeapSize>
JavaOptions
指定建置檔案時要傳遞至 java 的 .dex
命令行選項。
JarsignerTimestampAuthorityCertificateAlias
這個屬性可讓您在時間戳授權單位的金鑰存放區中指定別名。 如需詳細資訊,請參閱 Java 簽章時間戳支援 檔。
<PropertyGroup>
<JarsignerTimestampAuthorityCertificateAlias>Alias</JarsignerTimestampAuthorityCertificateAlias>
</PropertyGroup>
JarsignerTimestampAuthorityUrl
此屬性可讓您指定時間戳授權單位服務的 URL。 這可用來確保您的 .apk
簽章包含時間戳。
如需詳細資訊,請參閱 Java 簽章時間戳支援 檔。
<PropertyGroup>
<JarsignerTimestampAuthorityUrl>http://example.tsa.url</JarsignerTimestampAuthorityUrl>
</PropertyGroup>
LinkerDumpDependencies
布爾屬性,可產生連結器相依性檔案。 此檔案可作為 illinkanalyzer 工具的輸入使用。
名為 linker-dependencies.xml.gz
的相依性檔案會寫入項目目錄。 上。NET5/6 會寫入目錄中連結的 obj/<Configuration>/android<ABI>/linked
元件旁邊。
預設值為 [False] 。
MandroidI18n
指定應用程式隨附的國際化支援,例如定序和排序數據表。 此值是下列一或多個不區分大小寫之值的逗號或分號分隔清單:
無:未包含其他編碼。
全部:包含所有可用的編碼。
CJK:包括中文、日文和韓文編碼,例如日文 (EUC) [enc-jp, CP51932], 日文 (Shift-JIS) [iso-2022-jp, shift_jis, CP932], 日文 (JIS) [CP50220], 簡體中文 (GB2312) [gb2312, CP936], 韓文 (UHC) [ks_c_5601-1987, CP949], 韓文 (EUC) [euc-kr, CP51949], 繁體中文 (big5) [big5] [big5] [cp950], 和簡體中文 (GB18030) [GB18030, CP54936]。
MidEast:包括中東編碼,例如土耳其文 (Windows) [iso-8859-9, CP1254], 希伯來文 (Windows) [windows- 1255, CP1255], 阿拉伯文 (Windows) [windows-1256, CP1256]、阿拉伯文 (ISO) [iso-8859-6, CP28596], 希伯來文 (ISO) [iso-8859-8, CP28598], Latin 5 (ISO) [iso-8859-9, CP28599], 和希伯來文 (Iso Alternative) [iso-8859-8, CP38598]。
其他:包括其他編碼,如斯拉夫文 (Windows) [CP1251], 波羅的海 (Windows) [iso-8859-4, CP1257], 越南文 (Windows) [CP1258], 西拉夫文 (KOI8-R) [koi8-r, CP1251], 烏克蘭 (KOI8-U) [koi8-u, CP1251], 波羅的海 (ISO) [iso-8859-4, CP1257], 斯拉夫 (ISO) [iso-8859-5, CP1251], ISCII Davenagari [x-iscii-de, CP57002], ISCII Bengali [x-iscii-be, CP57003], ISCII 泰米爾[x-iscii-ta, CP57004], ISCII Telugu [x-iscii-te, CP57005], ISCII Assamese [x-iscii-as, CP57006], ISCII Oriya [x-iscii-or, CP57007],ISCII Kannada [x-iscii-ka, CP57008], ISCII 馬來亞拉姆 [x-iscii-馬, CP57009], ISCII Gujarati [x-iscii-gu, CP57010], ISCII 旁遮普比 [x-iscii-pa, CP57011], 和泰文 (Windows) [CP874]。
罕見:包括罕見的編碼,例如 IBM EBCDIC (土耳其文) [CP1026], IBM EBCDIC (Open Systems Latin 1) [CP1047], IBM EBCDIC (US-Canada with Euro) [CP1140], IBM EBCDIC (德國與歐元) [CP1141], IBM EBCDIC (丹麥/挪威與歐元) [CP1142], IBM EBCDIC (芬蘭/瑞典歐元) [CP1143], IBM EBCDIC (義大利與歐元) [CP1144], IBM EBCDIC (拉丁美洲/西班牙歐元) [CP1145], IBM EBCDIC (英國與歐元) [CP1146], IBM EBCDIC (法國與歐元) [CP1147], IBM EBCDIC (國際歐元) [CP1148], IBM EBCDIC (冰島與歐元) [CP1149], IBM EBCDIC (德國) [CP20273], IBM EBCDIC (丹麥/挪威) [CP20277], IBM EBCDIC (芬蘭/瑞典) [CP20278], IBM EBCDIC (義大利) [CP20280], IBM EBCDIC (拉丁美洲/西班牙) [CP20284], IBM EBCDIC (英國) [CP20285], IBM EBCDIC (日本片假名延伸) [CP20290], IBM EBCDIC (法國) [CP20297], IBM EBCDIC (阿拉伯文) [CP20420], IBM EBCDIC (希伯來文) [CP20424], IBM EBCDIC (冰島) [CP20871], IBM EBCDIC (塞爾維亞文 - 塞爾維亞文, 保加利亞文) [CP21025], IBM EBCDIC (US-加拿大) [CP37], IBM EBCDIC (國際) [CP500], 阿拉伯文 (ASMO 708) [CP708], 中歐 (DOS) [CP852], 斯拉夫 (DOS) [CP855], 土耳其文 (DOS) [CP857], 西歐 (DOS with Euro) [CP858], 希伯來文 (DOS) [CP862], 阿拉伯文 (DOS) [CP864], 俄文 (DOS) [CP866], 希臘文 (DOS) [CP869], IBM EBCDIC (拉丁 2) [CP870] 和 IBM EBCDIC (希臘) [CP875]。
西部:包括西歐編碼 (Mac) [macintosh, CP10000], 冰島 (Mac) [x-mac-冰島, CP10079], 中歐 (Windows) [iso-8859-2, CP1250], 西歐 (Windows) [iso-8859-1, CP1252], 希臘文 (Windows) [iso-8859-7, CP1253], 中歐 (ISO) [iso-8859-2, CP28592], 拉丁 3 (ISO) [iso-8859-3, CP28593], 希臘文 (ISO) [iso-8859-7, CP28597], 拉丁 9 (ISO) [iso-8859-15, CP28605], OEM 美國 [CP437], 西歐 (DOS) [CP850], 葡萄牙文 (DOS) [CP860], 冰島 (DOS) [CP861], 法國加拿大 (DOS) [CP863], 和北歐 (DOS) [CP865]。
<MandroidI18n>West</MandroidI18n>
MonoAndroidResourcePrefix
使用 的 [建置] 動作,指定從檔名開頭移除的路徑前置 詞 AndroidResource
。 這是為了允許變更資源所在位置。
預設值是 Resources
。 若為 Java 專案結構,請將此值變更為 res
。
MonoSymbolArchive
布爾值屬性,控制是否 .mSYM
要建立成品以供稍後搭配 mono-symbolicate
使用,以從發行堆棧追蹤擷取“real” 檔名和行號資訊。
針對已啟用偵錯符號的「發行」應用程式,預設為 True: $(EmbedAssembliesIntoApk)
為 True,$(DebugSymbols)
為 True,且 $(Optimize)
為 True。
在 Xamarin.Android 7.1 中已新增。