Buildeigenschaften

MSBuild-Eigenschaften steuern das Verhalten der Ziele. Sie werden in der Projektdatei (z. B. MyApp.csproj) in einer PropertyGroup von MSBuild angegeben.

AdbTarget

Die $(AdbTarget)-Eigenschaft gibt das Android-Zielgerät an, auf dem das Android-Paket installiert oder entfernt werden soll. Der Wert dieser Eigenschaft ist identisch mit der Zielgerätoption .

AfterGenerateAndroidManifest

Die in dieser Eigenschaft aufgelisteten MSBuild-Ziele werden direkt nach dem internen _GenerateJavaStubs-Ziel ausgeführt. Dabei wird die Datei AndroidManifest.xml im $(IntermediateOutputPath) generiert. Wenn Sie Änderungen an der generierten Datei AndroidManifest.xml vornehmen möchten, können Sie dies über diesen Erweiterungspunkt tun.

Ab Xamarin.Android, Version 9.4 verfügbar.

AndroidAapt2CompileExtraArgs

Gibt zusätzliche Befehlszeilenoptionen an, die an den Befehl aapt2 compile übergeben werden, wenn Android-Objekte und -Ressourcen verarbeitet werden.

Hinzugefügt in Xamarin.Android 9.1.

AndroidAapt2LinkExtraArgs

Gibt zusätzliche Befehlszeilenoptionen an, die an den Befehl aapt2 link übergeben werden, wenn Android-Objekte und -Ressourcen verarbeitet werden.

Hinzugefügt in Xamarin.Android 9.1.

AndroidAddKeepAlives

Hierbei handelt es sich um eine boolesche Eigenschaft, die steuert, ob der Linker GC.KeepAlive()-Aufrufe in Bindungsprojekten einfügt, um eine vorzeitige Objektsammlung zu verhindern.

Der Standardwert für Releasekonfigurationsbuilds ist True.

Diese Eigenschaft wurde in Xamarin.Android 11.2 hinzugefügt.

AndroidAotCustomProfilePath

Die Datei, die von aprofutil erstellt werden soll, um Profilerdaten zu speichern.

AndroidAotProfiles

Eine Zeichenfolgeneigenschaft, die es Entwicklern ermöglicht, AOT-Profile über die Befehlszeile hinzuzufügen. Dabei handelt es sich um eine durch Semikolons oder Kommas getrennte Liste absoluter Pfade. Ab Xamarin.Android 10.1 verfügbar.

AndroidAotProfilerPort

Der Port, über den aprofutil beim Abrufen von Profilerstellungsdaten eine Verbindung herstellen soll.

AndroidApkDigestAlgorithm

Ein Zeichenfolgenwert, der den mit jarsigner -digestalg zu verwendenden Hashalgorithmus angibt.

Der Standardwert ist SHA-256. In Xamarin.Android 10.0 und früher war der Standardwert SHA1.

Ab Xamarin.Android, Version 9.4 verfügbar.

AndroidApkSignerAdditionalArguments

Eine Zeichenfolgeneigenschaft, mit deren Hilfe Entwickler im apksigner-Tool zusätzliche Argumente angeben können.

Hinzugefügt in Xamarin.Android 8.2.

AndroidApkSigningAlgorithm

Ein Zeichenfolgenwert, der den mit jarsigner -sigalg zu verwendenden Signaturalgorithmus angibt.

Der Standardwert ist SHA256withRSA. In Xamarin.Android 10.0 und früher war der Standardwert md5withRSA.

Hinzugefügt in Xamarin.Android 8.2.

AndroidApplication

Ein boolescher Wert, der angibt, ob das Projekt für eine Android-Anwendung (True) oder für ein Android-Bibliotheksprojekt (False oder nicht vorhanden) vorgesehen ist.

Es darf nur ein Projekt mit <AndroidApplication>True</AndroidApplication> in einem Android-Paket vorhanden sein. (Leider wurde dies noch nicht bestätigt, was zu subtilen und bizarren Fehlern in Bezug auf Android-Ressourcen führen kann.)

AndroidApplicationJavaClass

Der vollständige Java-Klassenname, der anstelle von verwendet werden android.app.Application soll, wenn eine Klasse von android.app.Applicationerbt.

Diese Eigenschaft wird im Allgemeinen von anderen Eigenschaften festgelegt, z. B. der MSBuild Eigenschaft.

In Xamarin.Android 6.1 hinzugefügt.

AndroidBinUtilsPath

Ein Pfad zu einem Verzeichnis, das die Android-Binutils enthält, z. B. , den nativen Linker und as den nativen Assembler. Diese Tools sind Bestandteil des Android-NDK und auch in der Xamarin.Android-Installation enthalten.

Der Standardwert ist $(MonoAndroidBinDirectory)\ndk\.

Ab Xamarin.Android 10.0 verfügbar.

AndroidBoundExceptionType

Ein Zeichenfolgenwert, der angibt, wie Ausnahmen weitergegeben werden sollen, wenn ein von Xamarin.Android bereitgestellter Typ einen .NET-Typ oder eine .NET-Schnittstelle mit Java-Typen implementiert, z. B. Android.Runtime.InputStreamInvoker und System.IO.Stream oder Android.Runtime.JavaDictionary und System.Collections.IDictionary.

  • Java: Der ursprüngliche Java-Ausnahmetyp wird unverändert weitergegeben.

    Dies bedeutet beispielsweise, dass InputStreamInvoker die System.IO.Stream-API nicht ordnungsgemäß implementiert, da Java.IO.IOException von Stream.Read() anstelle von System.IO.IOException ausgelöst werden kann.

    Dies ist das Weitergabeverhalten für Ausnahmen in allen Releases von Xamarin.Android vor 11.1.

    Dies ist der Standardwert in Xamarin.Android 11.1.

  • System: Der ursprüngliche Java-Ausnahmetyp wird abgefangen und in einem entsprechenden .NET-Ausnahmetyp umschlossen.

    Dies bedeutet, dass beispielsweise InputStreamInvoker ordnungsgemäß implementiert und System.IO.StreamStream.Read()InputStreamInvokerJava.IO.IOException -Instanzen auslöst. (Stattdessen kann System.IO.IOException mit Java.IO.IOException als Exception.InnerException-Wert ausgelöst werden.)

    Dies wird der Standardwert in .NET 6.0.

Ab Xamarin.Android 10.2 verfügbar.

AndroidBuildApplicationPackage

Ein boolescher Wert, der angibt, ob das Paket erstellt und signiert werden soll (APK-Datei). Das Festlegen dieses Werts auf True ist identisch mit der Verwendung des -SignAndroidPackage Buildziel.

Unterstützung für diese Eigenschaft wurde nach Xamarin.Android 7.1 hinzugefügt.

Standardmäßig ist diese Eigenschaft False.

AndroidBundleConfigurationFile

Gibt einen Dateinamen an, der beim Erstellen eines Android-App-Pakets als Konfigurationsdatei verwendet werden soll. Diese Datei steuert einige Aspekte für die Generierung von APKs aus dem Bundle, z. B. in welche Dimensionen das Bundle aufgeteilt wird, um APKs zu erzeugen. Beachten Sie, dass Xamarin.Android einige dieser Einstellungen automatisch konfiguriert, z. B. die Liste der Dateierweiterungen, die unkomprimiert bleiben sollen.

Diese Eigenschaft ist nur relevant, wenn $(AndroidPackageFormat) auf aab festgelegt ist.

Ab Xamarin.Android 10.3 verfügbar.

AndroidClassParser

Eine Zeichenfolgeneigenschaft, die steuert, wie .jar-Dateien analysiert werden. Mögliche Werte sind:

  • class-parse:Verwendet , um Java-Bytecode ohne Unterstützung einer JVM direkt zu analysieren. Dieser Wert ist experimentell.

  • jar2xml:Verwenden Sie , um Java-Reflektion zum Extrahieren von Typen und Membern aus einer Datei zu .jar verwenden.

class-parse besitzt die folgenden Vorteile im Vergleich zu jar2xml:

  • class-parsekann Parameternamen aus Java-Bytecode extrahieren, der class-parse enthält (mit kompilierter Bytecode). javac -g

  • class-parse „überspringt“ keine Klassen, die von Membern nicht auflösbarer Typen erben oder diese enthalten.

Experimentell. Hinzugefügt in Xamarin.Android 6.0.

Der Standardwert ist jar2xml.

Die Unterstützung für jar2xml ist veraltet, und die Unterstützung für jar2xml wird mit .NET 6 eingestellt.

AndroidCodegenTarget

Eine Zeichenfolgeneigenschaft, die die Codegenerierungsziel-ABI steuert. Mögliche Werte sind:

  • XamarinAndroid: Verwendet die JNI-Bindungs-API, die seit Mono für Android 1.0 vorhanden ist. Bindungsassemblys, die mit Xamarin.Android 5.0 oder höher erstellt wurden, können nur unter Xamarin.Android 5.0 oder höher (API-/ABI-Erweiterungen) ausgeführt werden, aber die Quelle ist kompatibel mit früheren Produktversionen.

  • XAJavaInterop1: Verwendet Java.Interop für JNI-Aufrufe. Bindungsassemblys, die XAJavaInterop1 verwenden, können nur mit Xamarin.Android 6.1 oder höher erstellt und ausgeführt werden. Xamarin.Android 6.1 oder höher bindet Mono.Android.dll mit diesem Wert.

Die Vorteile von XAJavaInterop1 umfassen Folgendes:

  • Kleinere Assemblys.

  • jmethodID-Zwischenspeicherung für base Methodenaufrufe, solange alle anderen Bindungstypen in der Vererbungshierarchie mit XAJavaInterop1 oder höher erstellt werden.

  • jmethodID-Zwischenspeicherung von durch Java aufrufbare Wrapperkonstruktoren für verwaltete Unterklassen.

Der Standardwert ist XAJavaInterop1.

AndroidCreatePackagePerAbi

Eine boolesche Eigenschaft, die bestimmt, ob ein Satz von Dateien (per ABI in angegeben), erstellt werden soll, anstatt alle ABIs in einer einzelnen .apk-Datei zu unterstützen.

Weitere Informationen finden Sie auch im Leitfaden zum Erstellen von ABI-spezifischen APKs.

AndroidDebugKeyAlgorithm

Gibt den Standardalgorithmus zur Verwendung mit dem debug.keystore an. Sie wird standardmäßig auf RSA festgelegt.

AndroidDebugKeyValidity

Gibt den Standardwert für die Gültigkeit zur Verwendung mit dem debug.keystore an. Die Eigenschaft wird standardmäßig auf 10950 oder 30 * 365 oder 30 years festgelegt.

AndroidDebugStoreType

Gibt das Dateiformat für den Schlüsselspeicher an, das für debug.keystore verwendet werden soll. Sie wird standardmäßig auf pkcs12 festgelegt.

Ab Xamarin.Android 10.2 verfügbar.

AndroidDeviceUserId

Diese Eigenschaft ermöglicht das Bereitstellen und Debuggen der Anwendung mit Gast- oder Geschäftskonten. Der Wert ist der uid-Wert, den Sie über den folgenden adb-Befehl erhalten:

adb shell pm list users

Hierbei werden die folgenden Daten zurückgegeben:

Users:
	UserInfo{0:Owner:c13} running
	UserInfo{10:Guest:404}

Der uid-Wert ist der erste ganzzahlige Wert. Im Beispiel sind dies 0 und 10.

Diese Eigenschaft wurde in Xamarin.Android 11.2 hinzugefügt.

AndroidDexTool

Eine Eigenschaft im Enumerationsstil mit gültigen Werten von dx oder d8. Gibt an, welcher Android-Dex-Compiler im Xamarin.Android-Buildprozess verwendet wird. Derzeit wird standardmäßig dx verwendet. Weitere Informationen finden Sie in unserer Dokumentation zu D8 und R8.

AndroidEnableDesugar

Eine boolesche Eigenschaft, die bestimmt, ob desugar aktiviert ist. Android unterstützt derzeit nicht alle Features von Java 8 und die Standardtoolkette implementiert die neuen Sprachfeatures anhand Bytecode-Transformationen, desugar genannt, für die Ausgabe des javac-Compilers. Standardmäßig False bei Verwendung von AndroidDexTool=dx und True bei Verwendung von $(AndroidDexTool)=d8.

AndroidEnableGooglePlayStoreChecks

Eine boolesche Eigenschaft, die es Entwicklern ermöglicht, die folgenden Überprüfungen durch den Google Play Store zu deaktivieren: XA1004, XA1005 und XA1006. Dies ist nützlich für Entwickler, die nicht den Google Play Store nutzen und daher diese Überprüfungen nicht ausführen möchten.

Ab Xamarin.Android, Version 9.4 verfügbar.

AndroidEnableMultiDex

Eine boolesche Eigenschaft, die bestimmt, ob Multi-Dex-Unterstützung in der endgültigen .apk-Datei verwendet wird.

Unterstützung für diese Eigenschaft wurde in Xamarin.Android 5.1 hinzugefügt.

Standardmäßig ist diese Eigenschaft False.

AndroidEnablePreloadAssemblies

Eine boolesche Eigenschaft, die steuert, ob alle verwalteten Assemblys, die im Anwendungspaket gebündelt sind, während des Prozessstarts geladen werden.

Bei Festlegung auf True werden alle im Anwendungspaket gebündelten Assemblys während des Prozessstarts geladen, bevor Anwendungscode aufgerufen wird. Dieses Verhalten ist mit dem von Xamarin.Android in älteren Versionen als Xamarin.Android 9.2 konsistent.

Bei Festlegung auf False, werden Assemblys nur bei Bedarf geladen. Dies ermöglicht Anwendungen, schneller zu starten, und ist außerdem mit der .NET-Desktopsemantik konsistenter. Um die Zeitersparnis anzuzeigen, legen Sie die Systemeigenschaft debug.mono.log so fest, dass sie timing einschließt, und suchen Sie nach der Meldung Finished loading assemblies: preloaded in adb logcat.

Anwendungen oder Bibliotheken, die Dependency Injection verwenden, erfordern möglicherweise, dass diese Eigenschaft ist, wenn sie wiederum erfordern, dass alle Assemblys innerhalb des Anwendungspakets zurückgeben, auch wenn die Assembly andernfalls nicht benötigt worden AppDomain.CurrentDomain.GetAssemblies() wäre.

Standardmäßig wird dieser Wert auf True festgelegt.

Hinzugefügt in Xamarin.Android 9.2.

AndroidEnableProfiledAot

Eine boolesche Eigenschaft, die bestimmt, ob während der Vorabkompilierung AOT-Profile verwendet werden.

Die Profile sind in der Elementgruppe @(AndroidAotProfile) Elementgruppe. Diese Elementgruppe enthält Standardprofile. Sie können diese überschreiben, indem Sie die vorhandenen Profile entfernen und Ihre eigenen AOT-Profile hinzufügen.

Diese Eigenschaft wird ab Xamarin.Android, Version  9.4 unterstützt.

Standardmäßig ist diese Eigenschaft False.

AndroidEnableSGenConcurrent

Eine boolesche Eigenschaft, die bestimmt, ob der gleichzeitige Garbage Collector von Mono verwendet wird.

Unterstützung für diese Eigenschaft wurde in Xamarin.Android 7.2 hinzugefügt.

Standardmäßig ist diese Eigenschaft False.

AndroidErrorOnCustomJavaObject

Eine boolesche Eigenschaft, die bestimmt, ob Typen Android.Runtime.IJavaObjectAndroid.Runtime.IJavaObject gleichzeitiges Erben von Java.Lang.Object oder Java.Lang.Throwable implementieren können:

class BadType : IJavaObject {
    public IntPtr Handle {
        get {return IntPtr.Zero;}
    }

    public void Dispose()
    {
    }
}

Wenn diese Eigenschaft TRUE ist, generieren solche Typen einen XA4212-Fehler. Andernfalls wird eine XA4212-Warnung generiert.

Unterstützung für diese Eigenschaft wurde in Xamarin.Android 8.1 hinzugefügt.

Standardmäßig ist diese Eigenschaft True.

AndroidExplicitCrunch

Ab Xamarin.Android 11.0 nicht mehr unterstützt.

AndroidExtraAotOptions

Eine Zeichenfolgeneigenschaft, die die Übergabe zusätzlicher Optionen an den Mono-Compiler im Rahmen der Aot-Aufgabe für Projekte ermöglicht, für die $(AndroidEnableProfiledAot) oder $(AotAssemblies) auf true festgelegt ist. Der Zeichenfolgenwert der-Eigenschaft wird zur Antwortdatei hinzugefügt, wenn der Mono-Cross-Compiler aufgerufen wird.

Diese Eigenschaft sollte im Allgemeinen leer bleiben, bietet aber in bestimmten speziellen Szenarios möglicherweise eine nützliche Flexibilität.

Beachten Sie, dass sich diese Eigenschaft von der verwandten $(AndroidAotAdditionalArguments)-Eigenschaft unterscheidet. Diese Eigenschaft fügt durch Trennzeichen getrennte Argumente in die --aot-Option des Mono-Compilers ein. $(AndroidExtraAotOptions) übergibt stattdessen vollkommen eigenständige, durch Leerzeichen getrennte Optionen wie --verbose oder --debug an den Compiler.

Ab Xamarin.Android 10.2 verfügbar.

AndroidFastDeploymentType

Eine durch Doppelpunkte (:) getrennte Liste von Werten zum Steuern, welche Typen im : auf dem Zielgerät bereitgestellt werden können, wenn die MSBuild-Eigenschaft $(EmbedAssembliesIntoApk) den Wert False aufweist. Wenn eine Ressource schnell bereitgestellt wird, wird sie nicht in die generierte eingebettet, was die Bereitstellungszeiten beschleunigen kann. (Je mehr schneller bereitgestellt wird, desto seltener muss die .apk-Datei neu erstellt werden, und der Installationsprozess kann schneller ablaufen.) Gültige Werte:

  • Assemblies: Anwendungsassemblys werden bereitgestellt.
  • Dexes: .dex-Dateien, native Bibliotheken und Typzuordnungen werden bereitgestellt. Dieser Wert kann nur auf Geräten mit Android 4.4 oder höher (API-19) verwendet werden.

Der Standardwert ist Assemblies.

Die Unterstützung für Ressourcen und Objekte mit schneller Bereitstellung über dieses System wurde in Commit f0d565fe entfernt. Der Grund hierfür war, dass die Nutzung veralteter APIs erforderlich war, damit die Bereitstellung funktionierte.

Experimentell. Diese Eigenschaft wurde in Xamarin.Android 6.1 hinzugefügt.

AndroidGenerateJniMarshalMethods

Eine boolesche Eigenschaft, die das Generieren von JNI-Marshalmethoden als Teil des Buildprozesses ermöglicht. Dies reduziert die Verwendung von System.Reflection im Hilfscode für die Bindung erheblich.

Standardmäßig ist der Wert auf „False“ festgelegt. Wenn die Entwickler die neuen Fu JNI-Marshalmethoden nutzen wollen, können sie dies

<AndroidGenerateJniMarshalMethods>True</AndroidGenerateJniMarshalMethods>

in ihrer .csproj-Datei festlegen. Alternativ können Sie die Eigenschaft auch auf der Befehlszeile angeben über

/p:AndroidGenerateJniMarshalMethods=True

Experimentell. Hinzugefügt in Xamarin.Android 9.2. Der Standardwert ist „False“.

AndroidGenerateJniMarshalMethodsAdditionalArguments

Eine Zeichenfolgeneigenschaft, die verwendet werden kann, um beim Aufruf von jnimarshalmethod-gen.exe zusätzliche Parameter hinzuzufügen. Dies ist hilfreich beim Debuggen, sodass Optionen wie z.B. -v, -d, oder --keeptemp verwendet werden können.

Der Standardwert ist eine leere Zeichenfolge. Er kann in der .csproj-Datei oder an der Befehlszeile festgelegt werden. Zum Beispiel:

<AndroidGenerateJniMarshalMethodsAdditionalArguments>-v -d --keeptemp</AndroidGenerateJniMarshalMethodsAdditionalArguments>

oder:

/p:AndroidGenerateJniMarshalMethodsAdditionalArguments="-v -d --keeptemp"

Hinzugefügt in Xamarin.Android 9.2.

AndroidGenerateLayoutBindings

Aktiviert die Generierung von LayoutcodeBehind, wenn auf festgelegt ist, oder deaktiviert es vollständig, wenn auf festgelegt false ist. Standardwert: false.

AndroidHttpClientHandlerType

Steuert die Standardimplementierung von System.Net.Http.HttpMessageHandler, die vom System.Net.Http.HttpClient-Standardkonstruktor verwendet wird. Der Wert ist ein Name mit Assemblyqualifikation einer HttpMessageHandler-Unterklasse und eignet sich für die Verwendung mit System.Type.GetType(string). Für diese Eigenschaft werden am häufigsten die folgenden Werte zurückgegeben:

  • Xamarin.Android.Net.AndroidClientHandler: Verwenden Sie die Android-Java-APIs, um Netzwerkanforderungen auszuführen. Dies ermöglicht den Zugriff auf TLS 1.2-URLs, wenn die zugrunde liegende Android-Version TLS 1.2 unterstützt. Nur Android 5.0 und höhere Versionen stellen zuverlässige TLS 1.2-Unterstützung durch Java bereit.

    Dies entspricht der Android-Option auf den Eigenschaftenseiten von Visual Studio und der Option AndroidClientHandler auf den Eigenschaftenseiten von Visual Studio für Mac.

    Der Assistent für neue Projekte wählt diese Option für neue Projekte aus, wenn die Niedrigste zulässige Android-Version auf Android 5.0 (Lollipop) oder höher in Visual Studio oder für die Option Zielplattformen in Visual Studio für Mac Aktuelle und Interessanteste festgelegt ist.

  • Gelöschte/leere Zeichenfolge: Das entspricht System.Net.Http.HttpClientHandler, System.Net.Http.

    Dies entspricht der Option Standard auf den Eigenschaftenseiten von Visual Studio.

    Der Assistent für neue Projekte wählt diese Option für neue Projekte aus, wenn die Niedrigste zulässige Android-Version auf Android 4.4.87 oder höher in Visual Studio oder für die Option Zielplattformen in Visual Studio für Mac Moderne Entwicklung oder Maximale Kompatibilität festgelegt ist.

  • System.Net.Http.HttpClientHandler, System.Net.Http: Verwenden Sie den verwalteten HttpMessageHandler.

    Dies entspricht der Option Verwalten auf den Eigenschaftenseiten von Visual Studio.

Hinweis

Wenn TLS 1.2-Unterstützung in Android-Versionen vor 5.0 erforderlich ist oder TLS 1.2-Unterstützung mit dem und zugehörigen APIs benötigt wird, sollte $(AndroidTlsProvider) verwendet werden.

Hinweis

Die Unterstützung für diese Eigenschaft wird durch Festlegen der -Umgebungsvariable konfiguriert. Wenn in einer Datei ein $XA_HTTP_CLIENT_HANDLER_TYPE-Wert mit einer -Buildaktion gefunden wird, hat dieser Wert@(AndroidEnvironment) hat Vorrang.

In Xamarin.Android 6.1 hinzugefügt.

AndroidIncludeWrapSh

Hierbei handelt es sich um einen booleschen Wert, der angibt, ob das Android-Wrapperskript (wrap.sh) in das Android-Anwendungspaket gepackt werden soll. Diese Eigenschaft ist standardmäßig auf false festgelegt, da das Wrapperskript das Starten und die Funktionsweise der Anwendung erheblich beeinflussen kann und das Skript nur verwendet werden sollte, wenn dies z. B. zum Debuggen oder anderweitigen Ändern des Start- oder Laufzeitverhaltens der Anwendung erforderlich ist.

Das Skript wird dem Projekt mit der Buildaktion hinzugefügt,@(AndroidNativeLibrary) Buildaktion, da sie sich im selben Verzeichnis wie architekturspezifische native Bibliotheken befindet und den Namen haben wrap.sh muss.

Die einfachste Möglichkeit, den Pfad zum wrap.sh-Skript anzugeben, besteht darin, es in einem Verzeichnis zu platzieren, das nach der Zielarchitektur benannt ist. Dieser Ansatz funktioniert, wenn Sie pro Architektur über nur eine Datei wrap.sh verfügen:

<AndroidNativeLibrary Include="path/to/arm64-v8a/wrap.sh" />

Wenn Ihr Projekt jedoch mehr als eine Datei wrap.sh pro Architektur benötigt, funktioniert er nicht. In solchen Fällen kann stattdessen der Name mit den Link-Metadaten für AndroidNativeLibrary angegeben werden:

<AndroidNativeLibrary Include="/path/to/my/arm64-wrap.sh">
  <Link>lib\arm64-v8a\wrap.sh</Link>
</AndroidNativeLibrary>

Wenn die Link-Metadaten verwendet werden, muss es sich bei dem im zugehörigen Wert angegebenen Pfad um einen gültigen nativen architekturspezifischen Bibliothekspfad relativ zum APK-Stammverzeichnis handeln. Das Format des Pfads ist lib\ARCH\wrap.sh, wobei ARCH einer der folgenden Werte sein kann:

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

AndroidKeyStore

Ein boolescher Wert, der angibt, ob benutzerdefinierte Signaturinformationen verwendet werden sollen. Der Standardwert ist False. Dies bedeutet, dass der Debugsignatur-Standardschlüssel verwendet wird, um Pakete zu signieren.

AndroidLaunchActivity

Die Android-Aktivität zum Starten.

AndroidLinkMode

Gibt an, welcher Typ von Verknüpfung für Assemblys ausgeführt werden soll, die im Android-Paket enthalten sind. Wird nur in Android-Anwendungsprojekten verwendet. Der Standardwert ist SdkOnly. Gültige Werte sind:

  • None: Es wird keine Verknüpfung durchgeführt.

  • SdkOnly: Die Verknüpfung wird nur für die Basisklassenbibliotheken ausgeführt, nicht für die Assemblys des Benutzers.

  • Full: Die Verknüpfung wird für die Basisklassenbibliotheken und die Assemblys des Benutzers ausgeführt.

    Hinweis

    Die Verwendung AndroidLinkMode des Werts AndroidLinkMode führt häufig zu fehlerhaften Apps, insbesondere wenn Reflektion verwendet wird. Vermeiden Sie diesen Wert (es sei denn, Sie wissen wirklich, was Sie tun).

<AndroidLinkMode>SdkOnly</AndroidLinkMode>

AndroidLinkSkip

Gibt eine durch Semikolons (;) getrennte Liste von Assemblynamen (ohne Dateierweiterungen) von Assemblys an, die nicht verknüpft werden sollen. Wird nur in Android-Anwendungsprojekten verwendet.

<AndroidLinkSkip>Assembly1;Assembly2</AndroidLinkSkip>

AndroidLinkTool

Eine Eigenschaft im Enumerationsstil mit gültigen Werten von proguard oder r8. Gibt an, welcher Code-Shrinker für Java-Code verwendet wird. Ist derzeit standardmäßig eine leere Zeichenfolge oder proguard, wenn $(AndroidEnableProguard)True ist. Weitere Informationen finden Sie in unserer Dokumentation zu D8 und R8.

AndroidLintEnabled

Eine boolesche Eigenschaft, die es Entwicklern erlaubt, das Android-lint-Tool als Teil des Paketerstellungsprozesses auszuführen.

Wenn $(AndroidLintEnabled) den Wert TRUE hat, werden die folgenden Eigenschaften verwendet:

Die folgenden Buildaktionen können ebenfalls verwendet werden:

Weitere Informationen zu den Android-Tools finden Sie in der Lint-Hilfe.

AndroidLintEnabledIssues

Diese Eigenschaft wird nur verwendet, wenn $(AndroidLintEnabled) den Wert TRUE aufweist.

Eine durch Trennzeichen getrennte Liste der zu aktivierenden Lintingprobleme.

AndroidLintDisabledIssues

Diese Eigenschaft wird nur verwendet, wenn $(AndroidLintEnabled) den Wert TRUE aufweist.

Eine durch Trennzeichen getrennte Liste der zu deaktivierenden Lintingprobleme.

AndroidLintCheckIssues

Diese Eigenschaft wird nur verwendet, wenn $(AndroidLintEnabled) den Wert TRUE aufweist.

Eine durch Trennzeichen getrennte Liste der zu überprüfenden Lintingprobleme.

Hinweis: Es werden nur diese Probleme überprüft.

AndroidManagedSymbols

Eine boolesche Eigenschaft, die steuert, ob Sequenzpunkte generiert werden, sodass Dateinamen- und Zeilennummerinformationen aus Release-Stapelüberwachungen extrahiert werden können.

In Xamarin.Android 6.1 hinzugefügt.

AndroidManifest

Gibt einen Dateinamen an, der als Vorlage für die Datei AndroidManifest.xml der App verwendet werden soll. Während des Builds werden alle anderen notwendigen Werte gemergt, um die eigentliche Datei AndroidManifest.xml zu generieren. $(AndroidManifest) muss den Paketnamen im /manifest/@package-Attribut enthalten.

AndroidManifestMerger

Gibt die Implementierung für die Zusammenführung von AndroidManifest.xml-Dateien an. Hierbei handelt es sich um eine Enumerationseigenschaft, bei der legacy die ursprüngliche C#-Implementierung und manifestmerger.jar die Java-Implementierung von Google auswählt.

Der derzeitige Standardwert ist legacy. Dieser wird in einer zukünftigen Version in manifestmerger.jar, um das Verhalten an Android Studio auszugleichen.

Die Zusammenführung von Google ermöglicht unterstützung für xmlns:tools="http://schemas.android.com/tools" , wie in der xmlns:tools="http://schemas.android.com/tools"beschrieben.

Neu in Xamarin.Android 10.2

AndroidManifestPlaceholders

Eine durch Semikolons getrennte Liste von Schlüssel-Wert-Ersatzpaaren für AndroidManifest.xml, wobei jedes Paar das Format hat.

Beispielsweise definiert ein -Eigenschaftswert assemblyName=$(AssemblyName) von einen ${assemblyName} Platzhalter, der dann in der Folgenden angezeigt assemblyName=$(AssemblyName)

<application android:label="${assemblyName}"

Dies bietet eine Möglichkeit, Variablen aus dem Buildprozess in die Datei AndroidManifest.xml einzufügen.

AndroidMultiDexClassListExtraArgs

Eine Zeichenfolgeneigenschaft, die es Entwicklern ermöglicht, zusätzliche Argumente an com.android.multidex.MainDexListBuilder zu übergeben, wenn die Datei multidex.keep generiert wird.

Ein spezieller Fall ist, wenn bei der dx-Kompilierung der folgende Fehler angezeigt wird.

com.android.dex.DexException: Too many classes in --main-dex-list, main dex capacity exceeded

Wenn Sie diesen Fehler erhalten, können Sie in der .csproj-Datei Folgendes hinzufügen.

<DxExtraArguments>--force-jumbo </DxExtraArguments>
<AndroidMultiDexClassListExtraArgs>--disable-annotation-resolution-workaround</AndroidMultiDexClassListExtraArgs>

Damit sollte der Schritt dx erfolgreich ausgeführt werden können.

Hinzugefügt in Xamarin.Android 8.3.

AndroidPackageFormat

Eine Eigenschaft im Enumerationsstil mit gültigen Werten von apk oder aab. Damit können Sie festlegen, ob Sie die Android-Anwendung als APK-Datei oder Android-App-Bundle packen möchten. App-Bundles sind ein neues Format für Release-Builds, die für die Übermittlung auf Google Play vorgesehen sind. Der Standardwert hierfür lautet derzeit apk.

Wenn $(AndroidPackageFormat) auf aabfestgelegt ist, werden andere MSBuild-Eigenschaften festgelegt, die für Android-App-Bundles erforderlich sind:

AndroidPackageNamingPolicy

Eine Eigenschaft im Enumerationsstil zum Angeben der Java-Paketnamen des generierten Java-Quellcodes.

In Xamarin.Android 10.2 und höher ist LowercaseCrc64 der einzige unterstützte Wert.

In Xamarin.Android 10.1 war auch der Übergangswert LowercaseMD5 verfügbar, der einen Wechsel zurück zum ursprünglichen Java-Paketnamenformat ermöglichte, das in Xamarin.Android 10.0 und früher verwendet wurde. Diese Option wurde in Xamarin.Android 10.2 entfernt, um die Kompatibilität mit Buildumgebungen zu verbessern, in denen FIPS-Konformität erzwungen wird.

Ab Xamarin.Android 10.1 verfügbar.

AndroidProguardMappingFile

Gibt die ProGuard-Regel -printmapping für r8 an. Dies bedeutet, dass die Datei mapping.txt im Ordner $(OutputPath) erstellt wird. Diese Datei kann dann verwendet werden, wenn Pakete in den Google Play Store hochgeladen werden.

Standardwert: $(OutputPath)mapping.txt.

Diese Eigenschaft wurde in Xamarin.Android 11.2 hinzugefügt.

AndroidR8IgnoreWarnings

Gibt die ProGuard-Regel -ignorewarnings für r8 an. Dadurch kann r8 mit der DEX-Kompilierung fortfahren, auch wenn bestimmte Warnungen auftreten. Der Standardwert ist True, dieser kann jedoch auch auf False festgelegt werden, um ein strikteres Verhalten zu erzwingen. Weitere Informationen finden Sie im ProGuard-Leitfaden.

Ab Xamarin.Android 10.3 verfügbar.

AndroidR8JarPath

Der Pfad zur Datei r8.jar zur Verwendung mit dem r8 dex-Compiler und -Shrinker. Ist standardmäßig ein Pfad in der Xamarin.Android-Installation. Weitere Informationen finden Sie in unserer Dokumentation zu D8 und R8.

AndroidResgenExtraArgs

Gibt zusätzliche Befehlszeilenoptionen an, die an den Befehl aapt übergeben werden, wenn Android-Objekte und -Ressourcen verarbeitet werden.

AndroidResgenFile

Gibt den Namen der zu generierenden Ressourcendatei an. Die Standardvorlage legt diese Option auf Resource.designer.cs fest.

AndroidSdkBuildToolsVersion

Das Buildtoolpaket des Android SDK enthält unter anderem die Tools aapt und zipalign. Mehrere verschiedene Versionen des build-tools-Pakets können gleichzeitig installiert werden. Das build-tools-Paket, das für die Paketerstellung ausgewählt wird, wird durch Überprüfen und Verwenden einer „bevorzugten“ build-tools-Version ermittelt, wenn diese vorhanden ist. Wenn die „bevorzugte“ Version nicht vorhanden ist, wird das Paket mit der höchsten installierten build-tools-Version verwendet.

Die MSBuild-Eigenschaft $(AndroidSdkBuildToolsVersion) enthält die bevorzugte build-tools-Version. Das Xamarin.Android-Buildsystem stellt einen Standardwert in Xamarin.Android.Common.targets zur Verfügung, und der Standardwert kann in Ihrer Projektdatei überschrieben werden, um eine alternative build-tools-Version auszuwählen, wenn (zum Beispiel) die letzte Version von aapt abstürzt, während eine frühere aapt-Version bekanntermaßen funktioniert.

AndroidSigningKeyAlias

Gibt den Alias für den Schlüssel im Keystore an. Dies ist der Wert keytool -alias, der beim Erstellen des Keystore verwendet wird.

AndroidSigningKeyPass

Gibt das Kennwort des Schlüssels in der Keystoredatei an. Dies ist der Wert, der eingegeben wird, wenn sie zur Eingabe des keytoolkeytool

In Xamarin.Android 10.0 und früher unterstützt diese Eigenschaft nur Klartextkennwörter.

In Xamarin.Android 10.1 und höher unterstützt diese Eigenschaft auch die Präfixe env: und file:, mit denen eine Umgebungsvariable oder Datei angegeben werden kann, die das Kennwort enthält. Diese Optionen bieten eine Möglichkeit, zu verhindern, dass das Kennwort in Buildprotokollen auftaucht.

So wird beispielsweise eine Umgebungsvariable mit dem Namen AndroidSigningPassword verwendet:

<PropertyGroup>
    <AndroidSigningKeyPass>env:AndroidSigningPassword</AndroidSigningKeyPass>
</PropertyGroup>

So verwenden Sie die Datei C:\Users\user1\AndroidSigningPassword.txt:

<PropertyGroup>
    <AndroidSigningKeyPass>file:C:\Users\user1\AndroidSigningPassword.txt</AndroidSigningKeyPass>
</PropertyGroup>

Hinweis

Das Präfix env: wird nicht unterstützt, wenn $(AndroidPackageFormat) auf aab festgelegt ist.

AndroidSigningKeyStore

Gibt den Dateinamen der von keytool erstellten Keystoredatei an. Dies entspricht dem Wert, der der Option keytool -keystore zur Verfügung gestellt wird.

AndroidSigningStorePass

Gibt das Kennwort für $(AndroidSigningKeyStore) an. Dies ist der Wert, der beim Erstellen der Keystore-Datei angegeben und die Eingabe keytool des keytool.

In Xamarin.Android 10.0 und früher unterstützt diese Eigenschaft nur Klartextkennwörter.

In Xamarin.Android 10.1 und höher unterstützt diese Eigenschaft auch die Präfixe env: und file:, mit denen eine Umgebungsvariable oder Datei angegeben werden kann, die das Kennwort enthält. Diese Optionen bieten eine Möglichkeit, zu verhindern, dass das Kennwort in Buildprotokollen auftaucht.

So wird beispielsweise eine Umgebungsvariable mit dem Namen AndroidSigningPassword verwendet:

<PropertyGroup>
    <AndroidSigningStorePass>env:AndroidSigningPassword</AndroidSigningStorePass>
</PropertyGroup>

So verwenden Sie die Datei C:\Users\user1\AndroidSigningPassword.txt:

<PropertyGroup>
    <AndroidSigningStorePass>file:C:\Users\user1\AndroidSigningPassword.txt</AndroidSigningStorePass>
</PropertyGroup>

Hinweis

Das Präfix env: wird nicht unterstützt, wenn $(AndroidPackageFormat) auf aab festgelegt ist.

AndroidSupportedAbis

Eine Zeichenfolgeneigenschaft, die eine durch Semikolons (;) getrennte Liste von ABIs enthält, die in die .apk-Datei aufgenommen werden sollen.

Unterstützte Werte sind:

  • armeabi-v7a
  • x86
  • arm64-v8a: Erfordert Xamarin.Android 5.1 oder höher.
  • x86_64: Erfordert Xamarin.Android 5.1 oder höher.

AndroidTlsProvider

Ein Zeichenfolgenwert, der angibt, welcher TLS-Anbieter in einer Anwendung verwendet werden soll. Dabei sind folgende Werte möglich:

  • Gelöschte/leere Zeichenfolge: In Xamarin.Android 7.3 und höher entspricht dies btls.

    In Xamarin.Android 7.1 entspricht dies legacy.

    Dies entspricht der Einstellung Standard auf den Eigenschaftenseiten von Visual Studio.

  • btls: Verwenden btls die TLS-Kommunikation mit HttpWebRequest.

    Dies ermöglicht die Verwendung von TLS 1.2 in allen Android-Versionen.

    Dies entspricht der Einstellung Native TLS 1.2+ auf den Eigenschaftenseiten von Visual Studio.

  • legacy: Verwendet die historisch verwaltete SSL-Implementierung für die Netzwerkinteraktion in Xamarin.Android 10.1 und früher. Dies unterstützt TLS 1.2 nicht.

    Dies entspricht der Einstellung Verwaltete TLS 1.0 auf den Eigenschaftenseiten von Visual Studio.

    In Xamarin.Android 10.2 und höher wird dieser Wert ignoriert und die btls-Einstellung verwendet.

  • default: Dieser Wert wird in Xamarin.Android-Projekten in der Regel nicht verwendet. Es wird empfohlen, stattdessen die leere Zeichenfolge zu verwenden, die der Einstellung Standard auf den Eigenschaftenseiten von Visual Studio entspricht.

    Der Wert default wird auf den Eigenschaftenseiten von Visual Studio nicht angeboten.

    Dies entspricht zurzeit legacy.

In Xamarin.Android 7.1 hinzugefügt.

AndroidUseAapt2

Eine boolesche Eigenschaft, die es Entwicklern ermöglicht, die Verwendung des aapt2-Tools zum Packen zu steuern. Standardmäßig ist dies FALSE, und Xamarin.Android verwendet aapt. Wenn Entwickler die neue aapt2-Funktion verwenden möchten, fügen sie

<AndroidUseAapt2>True</AndroidUseAapt2>

in ihrer .csproj-Datei hinzu. Alternativ können Sie die Eigenschaft auch an der Befehlszeile angeben:

/p:AndroidUseAapt2=True

Diese Eigenschaft wurde in Xamarin.Android 8.3 hinzugefügt. Das Festlegen von AndroidUseAapt2 auf false ist ab Xamarin.Android 11.2 veraltet.

AndroidUseApkSigner

Eine boolesche Eigenschaft, die es Entwicklern ermöglicht, anstelle von jarsigner das apksigner-Tool zu verwenden.

Hinzugefügt in Xamarin.Android 8.2.

AndroidUseDefaultAotProfile

Eine boolesche Eigenschaft, die es Entwicklern ermöglicht, die Verwendung der AOT-Standardprofile zu unterdrücken.

Zum Unterdrücken der standardmäßigen AOT-Profile wird die-Eigenschaft auf falsefestgelegt.

Ab Xamarin.Android 10.1 verfügbar.

AndroidUseLegacyVersionCode

Eine boolesche Eigenschaft, die es Entwicklern ermöglicht, die versionCode-Berechnung auf das frühere Verhalten vor Xamarin.Android 8.2 zurückzusetzen. Dies sollte NUR für Entwickler verwendet werden, die an im Google Play Store vorhandenen Anwendungen arbeiten. Es wird dringend empfohlen, die neue $(AndroidVersionCodePattern)-Eigenschaft zu verwenden.

Hinzugefügt in Xamarin.Android 8.2.

AndroidUseManagedDesignTimeResourceGenerator

Eine boolesche Eigenschaft, die die Entwurfszeitbuilds umschaltet, damit diese anstelle von aapt den Parser für verwaltete Ressourcen verwenden.

Hinzugefügt in Xamarin.Android 8.1.

AndroidUseSharedRuntime

Eine boolesche Eigenschaft, die bestimmt, ob die Shared Runtime-Pakete erforderlich sind, um die Anwendung auf dem Zielgerät auszuführen. Durch die Verwendung der Shared Runtime-Pakete kann das Anwendungspaket kleiner werden, wodurch der Vorgang der Paketerstellung und -bereitstellung beschleunigt wird, was zu einem schnelleren Verarbeitungszyklus für Build/Bereitstellung/Debuggen führt.

Vor Xamarin.Android 11.2 sollte diese Eigenschaft auf True für Debugbuilds und False für Releaseprojekte festgelegt sein.

Diese Eigenschaft wurde in Xamarin.Android 11.2 entfernt.

AndroidVersionCodePattern

Eine Zeichenfolgeneigenschaft, die es Entwicklern ermöglicht, den versionCode im Manifest anzupassen. Informationen zur Entscheidung für eine finden Sie unter Erstellen des Versionscodes für das APK.

Einige Beispiele: Wenn abiarmeabi ist und versionCode im Manifest 123 ist, generiert {abi}{versionCode} einen versionCode von 1123, wenn $(AndroidCreatePackagePerAbi) TRUE ist, andernfalls wird ein Wert von 123 generiert. Wenn abix86_64 ist und versionCode im Manifest 44 ist: Dies generiert 544, wenn $(AndroidCreatePackagePerAbi) TRUE ist, andernfalls wird ein Wert von 44 generiert.

Wenn wir eine Formatzeichenfolge für Auffüllung links {abi}{versionCode:0000} einschließen, wird 50044 generiert, weil wir versionCode links mit 0 auffüllen. Alternativ können Sie die Dezimalauffüllung verwenden, wie z.B. ,{abi}{versionCode:D4} Dies entspricht dem vorherigen Beispiel.

Nur die Formatzeichenfolgen „0“ und „Dx“ für Auffüllung werden unterstützt, da der Wert eine ganze Zahl sein MUSS.

Vordefinierte Schlüsselelemente

  • abi: Fügt die Ziel-ABI für die App ein.

    • 2 – armeabi-v7a
    • 3 – x86
    • 4 – arm64-v8a
    • 5 – x86_64
  • minSDK: Fügt den unterstützten Sdk-Mindestwert aus oder 11 ein, wenn kein Sdk definiert ist.

  • versionCode: Verwendet den Versionscode direkt aus .

Sie können mithilfe der $(AndroidVersionCodeProperties)-Eigenschaft (definiert als Nächstes) benutzerdefinierte Elemente definieren.

Standardmäßig ist der Wert auf {abi}{versionCode:D6} festgelegt. Wenn Sie das vorherige Verhalten beibehalten möchten, können Sie die Standardeinstellung überschreiben, indem Sie die $(AndroidUseLegacyVersionCode)-Eigenschaft auf true festlegen.

Hinzugefügt in Xamarin.Android 7.2.

AndroidVersionCodeProperties

Eine Zeichenfolgeneigenschaft, die es Entwickler ermöglicht, benutzerdefinierte Elemente für die Verwendung mit $(AndroidVersionCodePattern) zu definieren. Diese liegen in Form eines key=value-Paares vor. Alle Elemente im value sollten ganzzahlige Werte sein. Beispiel: screen=23;target=$(_AndroidApiLevel). Wie Sie sehen können, können Sie vorhandene oder benutzerdefinierte MSBuild-Eigenschaften in der Zeichenfolge verwenden.

Hinzugefügt in Xamarin.Android 7.2.

AotAssemblies

Eine boolesche Eigenschaft, die festlegt, ob Assemblys vorzeitig in nativen Code kompiliert und in die .apk-Datei eingefügt werden.

Unterstützung für diese Eigenschaft wurde in Xamarin.Android 5.1 hinzugefügt.

Standardmäßig ist diese Eigenschaft False.

AProfUtilExtraOptions

Zusätzliche Optionen für die Übergabe an aprofutil.

BeforeGenerateAndroidManifest

Die in dieser Eigenschaft aufgelisteten MSBuild-Ziele werden direkt vor _GenerateJavaStubs ausgeführt.

Ab Xamarin.Android, Version 9.4 verfügbar.

Konfiguration

Gibt die zu verwendende Buildkonfiguration an, z. B. „Debug“ oder „Release“. Die Configuration-Eigenschaft wird verwendet, um Standardwerte für andere Eigenschaften zu ermitteln, die das Zielverhalten bestimmen. In der IDE können ggf. zusätzliche Konfigurationen erstellt werden.

Standardmäßig führt die -Konfiguration dazu, dass die Ziele Install undSignAndroidPackage ist darauf ausgerichtet, ein kleineres Android-Paket zu erstellen, für das andere Dateien und Pakete vorhanden sein müssen.

Die Standardkonfiguration Release führt dazu, dass die Ziele Install undSignAndroidPackage ist darauf ausgerichtet, ein SignAndroidPackagezu erstellen, das eigenständig ist und ohne Installation anderer Pakete oder Dateien verwendet werden kann.

DebugSymbols

Ein boolescher Wert, der bestimmt, ob das Android-Paket in Kombination mit der -Eigenschaft debuggbar ist. Ein Paket, das debuggt werden kann, enthält Debugsymbole, legt das -Attribut auf true fest und fügt automatisch die Berechtigung hinzu,INTERNET -Berechtigung, damit ein Debugger an den Prozess angefügt werden kann. Eine Anwendung kann debuggbar sein, wenn DebugSymbols ist TrueDebugSymbols entweder die leere DebugType Zeichenfolge oder Full ist.

DebugType

Gibt den Typ von Debugsymbolen an, die als Teil des Builds generiert werden sollen. Dies wirkt sich ebenfalls darauf aus, ob die Anwendung debuggt werden kann. Mögliche Werte:

  • Full: Vollständige Symbole werden generiert. Wird derDebugSymbolsMSBuild Eigenschaft ebenfalls True ist, kann das Anwendungspaket debuggbar sein.

  • PdbOnly: PDB-Symbole werden generiert. Das Anwendungspaket kann nicht debuggt werden.

Wenn DebugType nicht festgelegt wurde oder die leere Zeichenfolge ist, steuert die DebugSymbols-Eigenschaft, ob die Anwendung debuggt werden kann.

EmbedAssembliesIntoApk

Eine boolesche Eigenschaft, die bestimmt, ob die Assemblys der App in das Anwendungspaket eingebettet werden sollen.

Diese Eigenschaft sollte True für Releasebuilds und False für Debugbuilds sein. Sie muss sich möglicherweise in Debugbuilds befindet, wenn die schnelle Bereitstellung das Zielgerät nicht unterstützt.

Wenn diese Eigenschaft False ist, steuert die MSBuild-Eigenschaft $(AndroidFastDeploymentType)MSBuild -Eigenschaft steuert auch, was in eingebettet .apk wird, was sich auf die Bereitstellungs- und Neuerstellungszeiten auswirken kann.

EnableLLVM

Eine boolesche Eigenschaft, die bestimmt, ob LLVM verwendet wird, wenn Assemblys vorab in nativen Code kompiliert werden.

Zum Erstellen eines Projekts, für das diese Eigenschaft aktiviert ist, muss das Android-NDK installiert sein.

Unterstützung für diese Eigenschaft wurde in Xamarin.Android 5.1 hinzugefügt.

Standardmäßig ist diese Eigenschaft False.

Diese Eigenschaft wird ignoriert, wenn die MSBuild-Eigenschaft $(AotAssemblies) nicht den Wert True aufweist.

EnableProguard

Eine boolesche Eigenschaft, die bestimmt, ob ProGuard als Teil des Paketerstellungsprozesses ausgeführt wird, um Java-Code zu verknüpfen.

Unterstützung für diese Eigenschaft wurde in Xamarin.Android 5.1 hinzugefügt.

Standardmäßig ist diese Eigenschaft False.

Bei True werden True verwendet, um die Ausführung zu proguard steuern.

JavaMaximumHeapSize

Gibt den Wert des Java-Parameters an, der beim Erstellen der .dex-Datei als Teil des Paketerstellungsprozesses verwendet werden soll. Wenn nicht angegeben, stellt die -Xmx Option -Xmx dem Wert zur 1G Auswahl. Dies wurde unter Windows im Vergleich zu anderen Plattformen als häufig erforderlich erachtet.

Die Angabe dieser Eigenschaft ist erforderlich, wenn das -Ziel einen java.lang.OutOfMemoryError auslöst.

Passen Sie den Wert durch folgende Änderungen an:

<JavaMaximumHeapSize>1G</JavaMaximumHeapSize>

JavaOptions

Gibt zusätzliche Befehlszeilenoptionen an, die beim Erstellen der Datei an Java übergeben werden.

JarsignerTimestampAuthorityCertificateAlias

Über diese Eigenschaft können Sie einen Alias im Keystore für eine Zeitstempelautorität angeben. Weitere Informationen finden Sie in der Java Dokumentation zur Zeitstempelunterstützung für Signaturen.

<PropertyGroup>
    <JarsignerTimestampAuthorityCertificateAlias>Alias</JarsignerTimestampAuthorityCertificateAlias>
</PropertyGroup>

JarsignerTimestampAuthorityUrl

Über diese Eigenschaft können Sie eine URL zu einem Zeitstempelautoritätsdienst angeben. Diese kann verwendet werden, um sicherzustellen, dass die .apk-Signatur einen Zeitstempel enthält. Weitere Informationen finden Sie in der Java Dokumentation zur Zeitstempelunterstützung für Signaturen.

<PropertyGroup>
    <JarsignerTimestampAuthorityUrl>http://example.tsa.url</JarsignerTimestampAuthorityUrl>
</PropertyGroup>

LinkerDumpDependencies

Eine boolesche Eigenschaft, die das Generieren von Linker-Abhängigkeitsdateien ermöglicht. Diese Datei kann als Eingabe für das Illinkanalyzer-Tool verwendet werden.

Die Abhängigkeitsdatei linker-dependencies.xml.gz wird in das Projektverzeichnis geschrieben. Bei .NET 5/6 wird sie neben den verknüpften Assemblys in das Verzeichnis obj/<Configuration>/android<ABI>/linked geschrieben.

Der Standardwert ist False.

MandroidI18n

Gibt die Internationalisierungsunterstützung an, die in der Anwendung enthalten ist, wie z. B. Sortierung und Sortieren von Tabellen. Der Wert ist eine durch Kommas oder Semikolons getrennte Liste von mindestens einem der folgenden Werte, für den nicht zwischen Groß-/Kleinschreibung unterschieden wird:

  • Keiner: Keine zusätzliche Codierung einbeziehen.

  • All: Alle verfügbaren Codierungen einschließen.

  • CJK:Schließen Sie chinesische, japanische und koreanische Codierungen ein, z. B. Japanisch (EUC) [enc-jp, CP51932], Japanisch (Shift-JIS) [iso-2022-jp, shift_jis, CP932], Japanisch (JIS) [CP50220], Chinesisch vereinfacht (GB2312) [gb2312, CP936], Koreanisch (OHC) [ks_c_5601-1987, CP949], Koreanisch (EUC) [euc-kr, CP51949], Chinesisch traditionell (Big5) [big5, CP950] und Chinesisch vereinfacht (GB18030) [GB18030, CP54936].

  • MidEast: Schließen Sie Middle-Eastern-Codierungen ein, z.B. Türkisch (Windows) [iso-8859-9, CP1254], Hebräisch (Windows) [windows-1255, CP1255], Arabisch (Windows) [windows-1256, CP1256], Arabisch (ISO) [iso-8859-6, CP28596], Hebräisch (ISO) [iso-8859-8, CP28598], Lateinisch 5 (ISO) [iso-8859-9, CP28599] und Hebräisch (Iso Alternative) [iso-8859-8, CP38598].

  • Andere: Schließen Sie andere Codierungen ein, z.B. Kyrillisch (Windows) [CP1251], Kyrillisch (Windows) [iso-8859-4, CP1257], Ebensolisch (Windows) [CP1258], Kyrillisch (KOI8-R) [koi8-r, CP1251], Zeichen (KOI8-U) [koi8-u, CP1251], Iso (ISO) [iso-8859-4, CP1257], Kyrillisch (ISO) [iso-8859-5, CP1251], ISCII Davenaschneid [ x-iscii-de, CP57002], ISCII Kpi [x-iscii-be, CP57003], ISCII-Ip [x-iscii-ta, CP57004], ISCII Telugu [x-iscii-te, CP57005], ISCII Assamese [x-iscii-as, CP57006], ISCII Oruda [x-iscii-or, CP57007], ISCII Kannada [x-iscii-ka, CP57008], ISCII Mallam [x-iscii-ma, CP57009], ISCII Gujarati [x-iscii-gu, CP57010], ISCII Punjabi [x-iscii-pa, CP57011] und Thai ( Windows) [CP874].

  • Selten:Schließen Sie seltene Codierungen ein, z.B. IBM EBCDIC (Türkisch) [CP1026], IBM EBCDIC (Open Systems Latin 1) [CP1047], IBM EBCDIC (USA-Kanada mit Euro) [CP1140], IBM EBCDIC (Deutschland mit Euro) [CP1141], IBM EBCDIC (Spanien/Norwegen mit Euro) [CP1142], IBM EBCDIC (Spanien/Spanien mit Euro) [CP1143], IBM EBCDIC (Spanien mit Euro) [CP1144], IBM EBCDIC (Lateinamerika/Spanien mit Euro) [CP1145], IBM EBCDIC (Vereinigtes Königreich mit Euro) [CP1146], IBM EBCDIC (Frankreich mit Euro) [CP1147], IBM EBCDIC (International mit Euro) [CP1148], IBM EBCDIC (Ic with Euro) [CP1149], IBM EBCDIC (Deutschland) [CP20273], IBM EBCDIC (Norwegen/Norwegen) [CP20277], IBM EBCDIC (Spanien/Spanien) [CP20278], IBM EBCDIC (Spanien) [CP20280], IBM EBCDIC (Lateinamerika/Spanien) [CP20284], IBM EBCDIC (Vereinigtes Königreich) [CP20285], IBM EBCDIC (Japanisch Katakana Extended) [CP20290], IBM EBCDIC (Frankreich) [CP20297], IBM EBCDIC (Arabisch) [CP20420], IBM EBCDIC (Hebräisch) [CP20424], IBM EBCDIC (Chinesisch) [CP20871], IBM EBCDIC (Kyrillisch – Chinesisch, Zeichen) [CP21025], IBM EBCDIC (USA-Kanada) [CP37], IBM EBCDIC (International) [CP500], Arabisch (ASMO 708) [CP708], Mittele europäische (DOS) [CP852], Kyrillisch (DOS) [CP855], Türkisch (DOS) [CP857], Weste european (DOS mit Euro) [CP858], Hebräisch (DOS) [CP862], Arabisch (DOS) [CP864], Russisch (DOS) [CP866], Griechisch (DOS) [CP869], IBM EBCDIC (Latin 2) [CP870] und IBM EBCDIC (Griechisch) [CP875].

  • Westen:Schließen Sie westeische Codierungen ein, z.B. Westepäisch (Mac) [Macintosh, CP10000], Westeisisch (Mac) [x-mac-macintosh-macintoshic, CP10079], Mitteleisisch (Windows) [iso-8859-2, CP1250], Westeisch (Windows) [iso-8859-1, CP1252], Griechisch (Windows) [iso-8859-7, CP1253], Mitteleisch (ISO) [iso-8859-2, CP28592], Lateinisch 3 (ISO) [iso-8859-3, CP28593], Griechisch (ISO) [iso-8859-7, CP28597], Latin 9 (ISO) [iso-8859-15, CP28605], OEM USA [CP437], Westeisisch (DOS) [CP850], Portugiesisch (DOS) [CP860], Oemic (DOS) [CP861], Französisch-Kanada (DOS) [CP863] undLauf (DOS) [CP865].

<MandroidI18n>West</MandroidI18n>

MonoAndroidResourcePrefix

Gibt ein Pfadpräfix an, das am Anfang der Dateinamen mit der Buildaktion entfernt wird. Damit soll ermöglicht werden, den Speicherort von Ressourcen zu ändern.

Der Standardwert ist Resources. Ändern Sie diese Option für die Java-Projektstruktur in res.

MonoSymbolArchive

Eine boolesche Eigenschaft, die steuert, ob Artefakte für die spätere Verwendung mit erstellt werden, um "echte" Dateinamen- und Zeilennummerinformationen aus Releasestapelüberwachungen .mSYMmono-symbolicate zu extrahieren.

Dies ist für "Release"-Apps, für die Debugsymbole aktiviert sind, standardmäßig $(EmbedAssembliesIntoApk) True,$(DebugSymbols) ist "True", und$(Optimize) ist "True".

In Xamarin.Android 7.1 hinzugefügt.