共用方式為


組建屬性

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.InputStreamInvokerSystem.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的預設有效性。 預設值為 1095030 * 36530 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是第一個整數值。 在上述輸出中,它們是 010

屬性 $(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.ObjectJava.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

如果設定為 ,則啟用配置程式代碼後置產生,如果設定falsetrue ,則完全停用。 預設值是 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:使用 Managed HttpMessageHandler

    對應至 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.shARCH下列其中之一:

  • arm64-v8a
  • armeabi-v7a
  • x86_64
  • x86

AndroidJavadocVerbosity

指定在系結項目中匯入 Javadoc 檔時,應該如何「詳細資訊」 C# XML 檔批注

需要使用 @(JavaSourceJar) 建置動作。

屬性 $(AndroidJavadocVerbosity) 類似列舉,其可能值為 fullintellisense

預設值是 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 屬性:

此屬性將會針對 .net 6 淘汰。 使用者應該切換至較新的 AndroidPackageFormats

AndroidPackageFormats

具有和 aab有效值的apk分號分隔屬性。 指出您是否要將 Android 應用程式封裝為 APK 檔案Android 應用程式套件組合。 應用程式套件組合是 Release 的新格式,專供 Google Play 中的提交之用。

建置發行組建時,您可能會想要同時產生 和 和 aab apk ,以便散發到各種存放區。

將設定 AndroidPackageFormatsaab;apk 將會產生這兩者。 將設定 AndroidPackageFormatsaabapk 只會產生一個檔案。

針對 .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 r8Proguard 規則。 這表示 mapping.txt 檔案將會在 $(OutputPath) 資料夾中產生。 然後將套件上傳至Google Play商店時,可以使用此檔案。

根據預設,這個檔案會在使用 AndroidLinkTool=r8 時自動產生,並會產生下列檔案 $(OutputPath)mapping.txt

如果您不想產生此對應檔案,您可以使用 AndroidCreateProguardMappingFile 屬性停止建立它。 在您的專案中新增下列內容

<AndroidCreateProguardMappingFile>False</AndroidCreateProguardMappingFile>

-p:AndroidCreateProguardMappingFile=False或在命令列上使用 。

此屬性已在 Xamarin.Android 11.2 中新增。

AndroidR8IgnoreWarnings

指定的 -ignorewarnings r8Proguard 規則。 即使遇到特定警告,這仍允許 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 建置工具套件提供 aaptzipalign 工具等。 您可以同時安裝建置工具套件的多個不同版本。 如果「慣用的」建置工具版本存在,可藉由檢查及使用該版本來完成選擇要封裝的建置工具套件,如果「慣用的」版本不存在,則會使用已安裝的建置工具套件中版本最高者。

$(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 中新增。 設定 AndroidUseAapt2false 在 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 建立版本代碼

一些範例,如果 abiarmeabi 且資訊清單中的 versionCode123,則在 $(AndroidCreatePackagePerAbi) 為 True 時,{abi}{versionCode} 會產生 1123 的 versionCode,否則會產生 123 的值。 如果 abix86_64 且資訊清單中的 versionCode44。 當 $(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
  • 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 態會產生 InstallSignAndroidPackage 目標建立較小的Android套件,需要有其他檔案和套件才能運作。

默認 Release 組態會導致 InstallSignAndroidPackage目標是建立獨立的 Android 套件,而且不需安裝任何其他套件或檔案即可使用。

DebugSymbols

布爾值,決定Android套件是否可偵錯,結合 $(DebugType) 屬性。 可偵錯套件包含偵錯符號、將 //application/@android:debuggable 屬性 設定為 true,並自動新增 INTERNET 許可權,讓調試程式可以附加至進程。 如果 DebugSymbolsTrue 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 中已新增。