Propriétés de build

Les propriétés MSBuild contrôlent le comportement des cibles. Ils sont spécifiés dans le fichier projet, par exemple MyApp.csproj, dans un groupe de propriétés MSBuild.

AdbTarget

La $(AdbTarget) propriété spécifie l’appareil cible Android sur lequel le package Android peut être installé ou supprimé. La valeur de cette propriété est identique à l’option adbAppareil cible.

AfterGenerateAndroidManifest

Les cibles MSBuild répertoriées dans cette propriété s’exécutent directement après la cible interne _GenerateJavaStubs , qui est l’emplacement où le AndroidManifest.xml fichier est généré dans le $(IntermediateOutputPath). Si vous souhaitez apporter des modifications au fichier généré AndroidManifest.xml , vous pouvez le faire à l’aide de ce point d’extension.

Ajouté dans Xamarin.Android 9.4.

AndroidAapt2CompileExtraArgs

Spécifie les options de ligne de commande à passer à la commande de compilation aapt2 lors du traitement des ressources et ressources Android.

Ajouté dans Xamarin.Android 9.1.

AndroidAapt2LinkExtraArgs

Spécifie les options de ligne de commande à passer à la commande de lien aapt2 lors du traitement des ressources et ressources Android.

Ajouté dans Xamarin.Android 9.1.

AndroidAddKeepAlives

Propriété booléenne qui contrôle si l’éditeur de liens insère GC.KeepAlive() des appels dans des projets de liaison pour empêcher la collecte d’objets prématuré.

La valeur par défaut est True pour les builds de configuration Release.

Cette propriété a été ajoutée dans Xamarin.Android 11.2.

AndroidAotAdditionalArguments

Propriété de chaîne qui permet de transmettre des options au compilateur Mono pendant la tâche pour les projets dont l’une Aot ou $(AotAssemblies) l’autre est $(AndroidEnableProfiledAot) définie truesur . La valeur de chaîne de la propriété est ajoutée au fichier réponse lors de l’appel du compilateur croisé Mono.

En règle générale, cette propriété doit être laissée vide, mais dans certains scénarios spéciaux, elle peut fournir une flexibilité utile.

La $(AndroidAotAdditionalArguments) propriété est différente de la propriété associée $(AndroidExtraAotOptions) ; $(AndroidAotAdditionalArguments) transmet des options --verbose autonomes séparées par des espaces comme ou --debug vers le compilateur AOT, tandis que $(AndroidExtraAotOptions) contient des arguments séparés par des virgules qui font partie de l’option --aot du compilateur AOT.

AndroidAotCustomProfilePath

Fichier qui aprofutil doit être créé pour contenir les données du profileur.

AndroidAotProfiles

Propriété de chaîne qui permet au développeur d’ajouter des profils AOT à partir de la ligne de commande. Il s’agit d’une liste de chemins absolus séparés par des virgules ou des points-virgules. Ajouté dans Xamarin.Android 10.1.

AndroidAotProfilerPort

Port auquel aprofutil se connecter lors de l’obtention des données de profilage.

AndroidAotEnableLazyLoad

Activez le chargement différé (différé) d’assemblys AOT-d, au lieu de les précharger au démarrage. La valeur par défaut est True pour les builds Release avec n’importe quelle forme d’AOT activée.

Introduit dans .NET 6.

AndroidApkDigestAlgorithm

Valeur de chaîne qui spécifie l’algorithme digest à utiliser avec jarsigner -digestalg.

La valeur par défaut est SHA-256. Dans Xamarin.Android 10.0 et versions antérieures, la valeur par défaut était SHA1.

Ajouté dans Xamarin.Android 9.4.

AndroidApkSignerAdditionalArguments

Propriété de chaîne qui permet au développeur de fournir des arguments à l’outil apksigner .

Ajouté dans Xamarin.Android 8.2.

AndroidApkSigningAlgorithm

Valeur de chaîne qui spécifie l’algorithme de signature à utiliser avec jarsigner -sigalg.

La valeur par défaut est SHA256withRSA. Dans Xamarin.Android 10.0 et versions antérieures, la valeur par défaut était md5withRSA.

Ajouté dans Xamarin.Android 8.2.

AndroidApplication

Valeur booléenne qui indique si le projet est destiné à une application Android (True) ou pour un projet de bibliothèque Android (False ou non présent).

Un seul projet avec <AndroidApplication>True</AndroidApplication> peut être présent dans un package Android. (Malheureusement, cette exigence n’est pas vérifiée, ce qui peut entraîner des erreurs subtiles et bizarres concernant les ressources Android.)

AndroidApplicationJavaClass

Nom complet de la classe Java à utiliser à la place d’une android.app.Application classe qui hérite d’Android.App.Application.

La $(AndroidApplicationJavaClass) propriété est généralement définie par d’autres propriétés, telles que la $(AndroidEnableMultiDex) propriété MSBuild.

Ajouté dans Xamarin.Android 6.1.

AndroidBinUtilsPath

Chemin d’accès à un répertoire contenant les binutils Android tels que ld, l’éditeur de liens natif et as, l’assembleur natif. Ces outils sont inclus dans l’installation de Xamarin.Android.

La valeur par défaut est $(MonoAndroidBinDirectory)\binutils\bin\.

Ajouté dans Xamarin.Android 10.0.

AndroidBoundExceptionType

Valeur de chaîne qui spécifie la façon dont les exceptions doivent être propagées lorsqu’un type fourni par Xamarin.Android implémente un type ou une interface .NET en termes de types Java, par exemple Android.Runtime.InputStreamInvoker et System.IO.Stream, ou Android.Runtime.JavaDictionary .System.Collections.IDictionary

  • Java: le type d’exception Java d’origine est propagé tel qu’il est.

    Javasignifie que, par exemple, InputStreamInvoker n’implémente pas correctement l’APISystem.IO.Stream, car Java.IO.IOException elle peut être levée à partir de Stream.Read() .System.IO.IOException

    Java est le comportement de propagation des exceptions dans toutes les versions de Xamarin.Android, y compris Xamarin.Android 13.0.

  • System: le type d’exception Java d’origine est intercepté et encapsulé dans un type d’exception .NET approprié.

    Systemsignifie que, par exemple, InputStreamInvoker implémente System.IO.Streamcorrectement et Stream.Read() ne lève Java.IO.IOException pas d’instances. (Il peut à la place lever une System.IO.IOException valeur contenant une Java.IO.IOExceptionException.InnerException valeur.)

    System est la valeur par défaut dans .NET 6.0.

Ajouté dans Xamarin.Android 10.2.

AndroidBoundInterfacesContainConstants

Propriété booléenne qui détermine si les constantes de liaison sur les interfaces seront prises en charge, ou la solution de contournement de la création d’une IMyInterfaceConsts classe sera utilisée.

La valeur par défaut est True dans .NET 6 et False pour l’héritage.

AndroidBoundInterfacesContainStaticAndDefaultInterfaceMethods

Propriété booléenne qui indique si les membres par défaut et statiques sur les interfaces sont pris en charge ou une ancienne solution de contournement de la création d’une classe frère contenant des membres statiques comme abstract class MyInterface.

La valeur par défaut est True dans .NET 6 et False pour l’héritage.

AndroidBoundInterfacesContainTypes

Propriété booléenne qui indique si les types imbriqués dans les interfaces sont pris en charge ou la solution de contournement de la création d’un type non imbriqué comme IMyInterfaceMyNestedClass.

La valeur par défaut est True dans .NET 6 et False pour l’héritage.

AndroidBuildApplicationPackage

Valeur booléenne qui indique s’il faut créer et signer le package (.apk). La définition de cette valeur True équivaut à l’utilisation de la SignAndroidPackage cible de build.

La prise en charge de cette propriété a été ajoutée après Xamarin.Android 7.1.

Cette propriété est définie par défaut sur False.

AndroidBundleConfigurationFile

Spécifie un nom de fichier à utiliser comme fichier de configuration pour bundletool la création d’un bundle d’applications Android. Ce fichier contrôle certains aspects de la façon dont les API sont générées à partir de l’offre groupée, telles que les dimensions que le bundle est fractionnée pour produire des API. Xamarin.Android configure automatiquement certains de ces paramètres, notamment la liste des extensions de fichier à laisser non compressées.

Cette propriété n’est pertinente que si $(AndroidPackageFormat) elle est définie sur aab.

Ajouté dans Xamarin.Android 10.3.

AndroidBundleToolExtraArgs

Spécifie les options de ligne de commande à passer à la commande bundletool lors de la génération d’ensembles d’applications.

Cette propriété a été ajoutée dans Xamarin.Android 11.3.

AndroidClassParser

Propriété de chaîne qui contrôle la façon dont .jar les fichiers sont analysés. Valeurs possibles :

  • class-parse : utilise class-parse.exe pour analyser le bytecode Java directement, sans l’aide d’une machine virtuelle Java.

  • jar2xml : utilisez jar2xml.jar pour utiliser la réflexion Java pour extraire des types et des membres de réflexion d’un fichier .jar.

Les avantages de class-parse par rapport à jar2xml sont :

  • class-parse peut extraire des noms de paramètres du bytecode Java contenant des symboles de débogage (codés par octets compilés avec javac -g).

  • class-parse ne « ignore » pas les classes qui héritent ou contiennent des membres de types non résolus.

Ajouté dans Xamarin.Android 6.0.

La valeur par défaut est jar2xml « legacy » Xamarin.Android et class-parse dans .NET 6 et versions ultérieures.

jar2xml La prise en charge est obsolète et jar2xml est supprimée dans .NET 6.

AndroidCodegenTarget

Propriété de chaîne qui contrôle l’ABI cible de génération de code. Valeurs possibles :

  • XamarinAndroid : utilise l’API de liaison JNI présente depuis Mono pour Android 1.0. La liaison des assemblys générés avec Xamarin.Android 5.0 ou ultérieur peut s’exécuter seulement sur Xamarin.Android 5.0 ou ultérieur (ajouts d’API/ABI), mais la source est compatible avec les versions antérieures du produit.

  • XAJavaInterop1 : utilise Java.Interop pour les appels JNI. La liaison des assemblys avec XAJavaInterop1 peut être générée et s’exécuter seulement avec Xamarin.Android 6.1 ou ultérieur. Xamarin.Android 6.1 et ultérieur effectue la liaison de Mono.Android.dll avec cette valeur.

Les avantages de XAJavaInterop1 sont :

  • Assemblys plus petits.

  • Mise en cache de jmethodID pour les appels de méthode base, dès lors que tous les autres types de liaison de la hiérarchie d’héritage sont générés avec XAJavaInterop1 ou ultérieur.

  • Mise en cache de jmethodID pour les constructeurs de wrapper appelables par Java pour les sous-classes managées.

La valeur par défaut est XAJavaInterop1.

XamarinAndroid La prise en charge est obsolète et la prise en charge XamarinAndroid sera supprimée dans le cadre de .NET 6.

AndroidCreatePackagePerAbi

Propriété booléenne qui détermine si un ensemble de fichiers- un par ABI spécifié dans $(AndroidSupportedAbis)--doit être créé au lieu d’avoir la prise en charge de toutes les API dans un seul .apk.

Consultez également le guide des API spécifiques à l’ABI.

AndroidCreateProguardMappingFile

Propriété booléenne qui contrôle si un fichier de mappage proguard est généré dans le cadre du processus de génération.

L’ajout des éléments suivants à votre csproj entraîne la génération du fichier et utilise la AndroidProguardMappingFile propriété pour contrôler l’emplacement du fichier de mappage final.

<AndroidCreateProguardMappingFile>True</AndroidCreateProguardMappingFile>

Lors de la production .aab de fichiers, le fichier de mappage est automatiquement inclus dans votre package. Il n’est pas nécessaire de le charger manuellement dans le Google Play Store. Lorsque vous utilisez .apk des fichiers, vous AndroidProguardMappingFile devez le charger manuellement.

La valeur par défaut est True lors de l’utilisation $(AndroidLinkTool)de =r8.

Ajouté dans Xamarin.Android 12.3.

AndroidDebugKeyAlgorithm

Spécifie l’algorithme par défaut à utiliser pour le debug.keystore. La valeur par défaut est RSA.

AndroidDebugKeyValidity

Spécifie la validité par défaut à utiliser pour le debug.keystore. La valeur par défaut est 10950 ou 30 years30 * 365 .

AndroidDebugStoreType

Spécifie le format de fichier de magasin de clés à utiliser pour le debug.keystorefichier . Sa valeur par défaut est pkcs12.

Ajouté dans Xamarin.Android 10.2.

AndroidDeviceUserId

Permet de déployer et de déboguer l’application sous des comptes invités ou professionnels. La valeur est la uid valeur que vous obtenez à partir de la commande adb suivante :

adb shell pm list users

La commande ci-dessus retourne les données suivantes :

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

Il uid s’agit de la première valeur entière. Dans la sortie ci-dessus, ils sont 0 et 10.

La $(AndroidDeviceUserId) propriété a été ajoutée dans Xamarin.Android 11.2.

AndroidDexTool

Propriété de style énumération avec des valeurs valides de dx ou d8. Indique le compilateur dex Android utilisé pendant le processus de génération de Xamarin.Android. La valeur par défaut est dx. Consultez notre documentation sur D8 et R8.

AndroidEnableDesugar

Propriété booléenne qui détermine si desugar elle est activée. Android ne prend actuellement pas en charge toutes les fonctionnalités Java 8, et la chaîne d’outils par défaut implémente les nouvelles fonctionnalités de langage en effectuant des transformations bytecode appelées desugar, sur la sortie du javac compilateur. La valeur par défaut est si elle est utilisée et si elle est utilisée=$(AndroidDexTool)d8 .True$(AndroidDexTool)=dxFalse

AndroidEnableGooglePlayStoreChecks

Propriété bool qui permet aux développeurs de désactiver les case activée Google Play Store suivants : XA1004, XA1005 et XA1006. La désactivation de ces case activée est utile pour les développeurs qui ne ciblent pas le Google Play Store et ne souhaitent pas exécuter ces case activée s.

Ajouté dans Xamarin.Android 9.4.

AndroidEnableMultiDex

Propriété booléenne qui détermine si la prise en charge multi-dex sera utilisée dans la version finale .apk.

La prise en charge de cette propriété a été ajoutée dans Xamarin.Android 5.1.

Cette propriété est définie par défaut sur False.

AndroidEnablePreloadAssemblies

Propriété booléenne qui contrôle si tous les assemblys managés regroupés dans le package d’application sont chargés pendant le démarrage du processus ou non.

Avec la valeur True, tous les assemblys fournis dans le package d’application seront chargés lors du démarrage du processus, avant l’appel de tout code d’application. Le préchargement des assemblys est ce que fait Xamarin.Android.

Avec la valeur False, les assemblys seront uniquement chargés selon les besoins. Le chargement d’assemblys en fonction des besoins permet aux applications de lancer plus rapidement et est également plus cohérent avec la sémantique .NET de bureau. Pour visualiser le gain de temps obtenu, définissez la propriété système debug.mono.log pour inclure timing, puis recherchez le message Finished loading assemblies: preloaded dans adb logcat.

Les applications ou bibliothèques, qui utilisent l’injection de dépendances peuvent nécessiter que cette propriété soit True si elle exige à son tour que AppDomain.CurrentDomain.GetAssemblies() tous les assemblys au sein de l’ensemble d’applications, même si l’assembly n’aurait pas été nécessaire.

Par défaut, cette valeur sera définie True sur Xamarin.Android et sera définie False sur pour les builds .NET 6+.

Ajouté dans Xamarin.Android 9.2.

AndroidEnableProfiledAot

Propriété booléenne qui détermine si les profils AOT sont utilisés ou non pendant la compilation à l’avance.

Les profils sont répertoriés dans @(AndroidAotProfile) groupe d’éléments. Ce groupe d’éléments contient le ou les profils par défaut. Il peut être substitué en supprimant le ou les fichiers existants et en ajoutant vos propres profils AOT.

La prise en charge de cette propriété a été ajoutée dans Xamarin.Android 9.4.

Cette propriété est définie par défaut sur False.

AndroidEnableSGenConcurrent

Propriété booléenne qui détermine si le collecteur GC simultané de Mono sera utilisé ou non.

La prise en charge de cette propriété a été ajoutée dans Xamarin.Android 7.2.

Cette propriété est définie par défaut sur False.

AndroidErrorOnCustomJavaObject

Propriété booléenne qui détermine si les types peuvent être implémentés sans hériter ou Java.Lang.ThrowableJava.Lang.Object :Android.Runtime.IJavaObject

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

    public void Dispose()
    {
    }
}

Lorsque la valeur est True, ces types génèrent une erreur XA4212, sinon un avertissement XA4212 est généré.

Ajouté dans Xamarin.Android 8.1.

Cette propriété est définie par défaut sur True.

AndroidExplicitCrunch

Non pris en charge dans Xamarin.Android 11.0.

AndroidExtraAotOptions

Propriété de chaîne qui permet de transmettre des options au compilateur Mono pendant la tâche pour les projets dont l’une Aot ou $(AotAssemblies) l’autre est $(AndroidEnableProfiledAot) définie truesur . La valeur de chaîne de la propriété est ajoutée au fichier réponse lors de l’appel du compilateur croisé Mono.

En règle générale, cette propriété doit être laissée vide, mais dans certains scénarios spéciaux, elle peut fournir une flexibilité utile.

La $(AndroidExtraAotOptions) propriété est différente de la propriété associée $(AndroidAotAdditionalArguments) ; $(AndroidAotAdditionalArguments) place les arguments séparés par des virgules dans l’option --aot du compilateur Mono. $(AndroidExtraAotOptions) Au lieu de cela, passe des options --verbose autonomes séparées par des espaces comme ou --debug au compilateur.

Ajouté dans Xamarin.Android 10.2.

AndroidFastDeploymentType

Liste : (deux-points) séparée par des valeurs pour contrôler les types pouvant être déployés dans le répertoire Déploiement rapide sur l’appareil cible lorsque la $(EmbedAssembliesIntoApk) propriété MSBuild est False. Si une ressource est déployée via le déploiement rapide, elle n’est pas incorporée dans le fichier .apk généré, ce qui peut accélérer les temps de déploiement. (Plus le déploiement rapide est rapide, puis le moins fréquemment le .apk besoin d’être reconstruit, et le processus d’installation peut être plus rapide.) Les valeurs valides sont les suivantes :

  • Assemblies : déployer les assemblys de l’application.
  • Dexes: Déployer des .dex fichiers, des bibliothèques natives et des typesmaps. La Dexes valeur ne peut être utilisée que sur les appareils exécutant Android 4.4 ou version ultérieure (API-19).

La valeur par défaut est Assemblies.

Prise en charge des ressources et ressources de déploiement rapide via ce système a été supprimée dans la validation f0d565fe. Cela était dû au fait qu’il fallait utiliser les API dépréciées pour fonctionner.

Experimental. Cette propriété a été ajoutée dans Xamarin.Android 6.1.

AndroidFragmentType

Spécifie le type complet par défaut à utiliser pour tous les éléments de disposition <fragment> pendant la génération du code des liaisons de disposition. La valeur par défaut est le type Android Android.App.Fragment standard.

AndroidGenerateJniMarshalMethods

Propriété bool qui permet de générer des méthodes de marshalage JNI dans le cadre du processus de génération. Cela réduit considérablement l’utilisation System.Reflection dans le code d’assistance de liaison.

La valeur par défaut est False. Si les développeurs souhaitent utiliser la nouvelle fonctionnalité de marshalage JNI, ils peuvent définir

<AndroidGenerateJniMarshalMethods>True</AndroidGenerateJniMarshalMethods>

dans leur .csproj. Vous pouvez également fournir la propriété sur la ligne de commande via

/p:AndroidGenerateJniMarshalMethods=True

Experimental. Ajouté dans Xamarin.Android 9.2. La valeur par défaut est False.

AndroidGenerateJniMarshalMethodsAdditionalArguments

Propriété de chaîne qui peut être utilisée pour ajouter des paramètres à l’appel et est utile pour le jnimarshalmethod-gen.exe débogage, de sorte que les options telles que -v, -dou --keeptemp peuvent être utilisées.

La valeur par défaut est une chaîne vide. Il peut être défini dans le .csproj fichier ou sur la ligne de commande. Par exemple :

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

ou :

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

Ajouté dans Xamarin.Android 9.2.

AndroidGenerateLayoutBindings

Active la génération de code-behind de disposition si elle est définie true ou désactive complètement si elle est définie falsesur . La valeur par défaut est false.

AndroidGenerateResourceDesigner

La valeur par défaut est true. Lorsqu’il falseest défini sur , désactive la génération de Resource.designer.cs.

Ajouté dans .NET 6 RC 1. Non pris en charge dans Xamarin.Android.

AndroidHttpClientHandlerType

Contrôle l’implémentation par défaut System.Net.Http.HttpMessageHandler qui sera utilisée par le System.Net.Http.HttpClient constructeur par défaut. Sa valeur est un nom de type qualifié d’assembly d’une sous-classe HttpMessageHandler, utilisable avec System.Type.GetType(string). Les valeurs les plus couramment utilisées pour cette propriété sont :

  • Xamarin.Android.Net.AndroidClientHandler: Utilisez les API Java Android pour effectuer des requêtes réseau. L’utilisation des API Java permet d’accéder aux URL TLS 1.2 lorsque la version Android sous-jacente prend en charge TLS 1.2. Seuls Android 5.0 et les versions ultérieures gèrent TLS 1.2 de façon fiable avec Java.

    Correspond à l’option Android dans les pages de propriétés Visual Studio et à l’option AndroidClientHandler dans les pages de propriétés Visual Studio pour Mac.

    L’Assistant Nouveau projet sélectionne cette option pour les nouveaux projets lorsque la Version minimale d’Android est configurée sur Android 5.0 (Lollipop) ou ultérieur dans Visual Studio, ou lorsque Plateformes cibles est défini sur Tout dernier dans Visual Studio pour Mac.

  • Annuler l’ensemble/la chaîne vide, qui est équivalente à System.Net.Http.HttpClientHandler, System.Net.Http

    Correspond à l’option Par défaut dans les pages de propriétés Visual Studio.

    L’Assistant Nouveau projet sélectionne cette option pour les nouveaux projets lorsque la Version minimale d’Android est configurée sur Android 4.4.87 ou antérieur dans Visual Studio, ou lorsque Plateformes cibles est défini sur Développement moderne ou Compatibilité maximale dans Visual Studio pour Mac.

  • System.Net.Http.HttpClientHandler, System.Net.Http: Utiliser le managé HttpMessageHandler.

    Correspond à l’option Managée dans les pages de propriétés Visual Studio.

Remarque

Si la prise en charge de TLS 1.2 est requise sur les versions d’Android antérieures à 5.0, ou qu’elle est nécessaire avec System.Net.WebClient et les API associées, il faut utiliser $(AndroidTlsProvider).

Remarque

La prise en charge de la $(AndroidHttpClientHandlerType) propriété fonctionne en définissant la variable d’environnementXA_HTTP_CLIENT_HANDLER_TYPE. Valeur $XA_HTTP_CLIENT_HANDLER_TYPE trouvée dans un fichier avec une action build de @(AndroidEnvironment) est prioritaire.

Ajouté dans Xamarin.Android 6.1.

AndroidIncludeWrapSh

Valeur booléenne qui indique si le script wrapper Android (wrap.sh) doit être empaqueté dans l’APK. La valeur par défaut est false que le script wrapper peut influencer considérablement la façon dont l’application démarre et fonctionne et que le script doit être inclus uniquement si nécessaire, par exemple lors du débogage ou de la modification du comportement de démarrage/exécution de l’application.

Le script est ajouté au projet à l’aide du @(AndroidNativeLibrary) action de génération, car elle est placée dans le même répertoire que les bibliothèques natives spécifiques à l’architecture et doit être nommée wrap.sh.

Le moyen le plus simple de spécifier le chemin d’accès au wrap.sh script consiste à le placer dans un répertoire nommé après l’architecture cible. Cette approche fonctionne si vous n’avez qu’une wrap.sh seule architecture :

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

Toutefois, si votre projet a besoin de plus d’un wrap.sh par architecture, à des fins différentes, cette approche ne fonctionnera pas. Au lieu de cela, dans ce cas, le nom peut être spécifié à l’aide des Link métadonnées du AndroidNativeLibrary:

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

Si les Link métadonnées sont utilisées, le chemin spécifié dans sa valeur doit être un chemin de bibliothèque spécifique à l’architecture native valide, par rapport au répertoire racine APK. Le format du chemin d’accès peut lib\ARCH\wrap.shARCH être l’un des suivants :

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

AndroidJavadocVerbosity

Spécifie comment les commentaires de documentation XML C# « détaillé » doivent être lors de l’importation de la documentation Javadoc dans des projets de liaison.

Nécessite l’utilisation du @(JavaSourceJar) action de génération.

La $(AndroidJavadocVerbosity) propriété est enum-like, avec des valeurs possibles de full ou intellisense:

La valeur par défaut est intellisense.

La prise en charge de cette propriété a été ajoutée dans Xamarin.Android 11.3.

AndroidKeyStore

Valeur booléenne qui indique si les informations de signature personnalisées doivent être utilisées. La valeur par défaut est False, qui signifie que la clé de signature de débogage par défaut est utilisée pour signer les packages.

AndroidLaunchActivity

Activité Android à lancer.

AndroidLinkMode

Spécifie le type de liaison à effectuer sur les assemblys contenus dans le package Android. Utilisé seulement dans les projets d’application Android. La valeur par défaut est SdkOnly. Les valeurs valides sont :

  • None : aucune liaison n’est tentée.

  • SdkOnly : la liaison est effectuée seulement sur les bibliothèques de classes de base, pas sur les assemblys de l’utilisateur.

  • Full : la liaison est effectuée seulement sur les bibliothèques de classes de base et sur les assemblys de l’utilisateur.

    Remarque

    L’utilisation de la valeur Full pour AndroidLinkMode aboutit généralement à des applications endommagées, en particulier quand la réflexion est utilisée. À éviter, sauf si vous savez vraiment ce que vous faites.

<AndroidLinkMode>SdkOnly</AndroidLinkMode>

AndroidLinkResources

Quand true, le système de génération lie les types imbriqués de la classe Resource.Designer.cs Resource dans tous les assemblys. Le code IL qui utilise ces types sera mis à jour pour utiliser les valeurs directement plutôt que d’accéder aux champs.

La liaison des types imbriqués peut avoir un faible impact sur la réduction de la taille de l’apk et peut également vous aider à améliorer les performances de démarrage. Seules les builds « Release » sont liées.

Experimental. Conçu uniquement pour fonctionner avec du code tel que

var view = FindViewById(Resources.Ids.foo);

Tous les autres scénarios (tels que la réflexion) ne seront pas pris en charge.

La prise en charge de cette propriété a été ajoutée dans Xamarin.Android 11.3

AndroidLinkSkip

Spécifie une liste délimitée par des points-virgules (;) de noms d’assemblys, sans extensions de fichier, d’assemblys qui ne doivent pas être liés. Utilisé seulement dans les projets d’application Android.

<AndroidLinkSkip>Assembly1;Assembly2</AndroidLinkSkip>

AndroidLinkTool

Propriété de style énumération avec des valeurs valides de proguard ou r8. Indique le réducteur de code utilisé pour le code Java. La valeur par défaut est une chaîne vide, ou proguard si c’est le cas $(AndroidEnableProguard)True. Consultez notre documentation sur D8 et R8.

AndroidLintEnabled

Propriété bool qui permet au développeur d’exécuter l’outil Android lint dans le cadre du processus d’empaquetage.

Quand $(AndroidLintEnabled)=True, les propriétés suivantes sont utilisées :

Les actions de génération suivantes peuvent également être utilisées :

Consultez l’aide de Lint pour plus d’informations sur l’outil lint android.

AndroidLintEnabledIssues

Propriété de chaîne qui est une liste séparée par des virgules de problèmes de lint à activer.

Utilisé uniquement lorsque $(AndroidLintEnabled)=True.

AndroidLintDisabledIssues

Propriété de chaîne qui est une liste séparée par des virgules de problèmes de lint à désactiver.

Utilisé uniquement lorsque $(AndroidLintEnabled)=True.

AndroidLintCheckIssues

Propriété de chaîne qui est une liste séparée par des virgules de problèmes de lint à case activée.

Utilisé uniquement lorsque $(AndroidLintEnabled)=True.

Remarque : Seuls ces problèmes sont vérifiés.

AndroidManagedSymbols

Propriété booléenne qui contrôle si les points de séquence sont générés afin que les informations de nom de fichier et de numéro de ligne puissent être extraites des traces de Release pile.

Ajouté dans Xamarin.Android 6.1.

AndroidManifest

Spécifie un nom de fichier à utiliser comme modèle pour l’application AndroidManifest.xml. Lors de la génération, toutes les autres valeurs nécessaires y sont fusionnées pour produire le fichier AndroidManifest.xml effectif. $(AndroidManifest) doit contenir le nom du package dans l’attribut /manifest/@package.

AndroidManifestMerger

Spécifie l’implémentation de la fusion de fichiers AndroidManifest.xml . Il s’agit d’une propriété enum-style où legacy sélectionne l’implémentation C# d’origine et manifestmerger.jar sélectionne l’implémentation Java de Google.

La valeur par défaut est actuellement legacy. Cela passera à manifestmerger.jar une version ultérieure pour aligner le comportement avec Android Studio.

La fusion de Google permet la prise en charge comme xmlns:tools="http://schemas.android.com/tools" décrit dans la documentation Android.

Introduit dans Xamarin.Android 10.2

AndroidManifestMergerExtraArgs

Propriété de chaîne pour fournir des arguments à l’outil de documentation Android.

Si vous souhaitez obtenir une sortie détaillée de l’outil, vous pouvez ajouter ce qui suit au .csprojfichier .

<AndroidManifestMergerExtraArgs>--log VERBOSE</AndroidManifestMergerExtraArgs>

Introduit dans Xamarin.Android 11.x

AndroidManifestType

Propriété de style énumération avec des valeurs valides de Xamarin ou GoogleV2. Ce contrôle le référentiel utilisé par le InstallAndroidDependencies cible pour déterminer quels packages Et versions de package Android sont disponibles et peuvent être installés.

Xamarinest le référentiel de liste approuvée (recommandé) dans le Gestionnaire du kit de développement logiciel (SDK) Visual Studio.

GoogleV2est le référentiel Liste complète (non pris en charge) dans le Gestionnaire du Kit de développement logiciel (SDK) Visual Studio.

Ajouté dans Xamarin.Android 13.0. Dans Xamarin.Android 13.0, s’il $(AndroidManifestType) n’est pas défini, il Xamarin est utilisé.

Avant Xamarin.Android 13.0, le paramètre $(AndroidManifestType) n’a aucun effet et GoogleV2 est utilisé.

AndroidManifestPlaceholders

Liste séparée par des points-virgules de paires de remplacement clé-valeur pour AndroidManifest.xml, où chaque paire a le format key=value.

Par exemple, une valeur de propriété de assemblyName=$(AssemblyName) définit un ${assemblyName} espace réservé qui peut ensuite apparaître dans AndroidManifest.xml :

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

Cela permet d’insérer des variables à partir du processus de génération dans le fichier AndroidManifest.xml .

AndroidMultiDexClassListExtraArgs

Propriété de chaîne qui permet aux développeurs de passer des arguments au moment de générer com.android.multidex.MainDexListBuilder le multidex.keep fichier.

Un cas spécifique est si vous obtenez l’erreur suivante durant la compilation dx.

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

Si vous obtenez cette erreur, vous pouvez ajouter les éléments suivants au .csprojfichier .

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

qui permettra à l’étape dx de réussir.

Ajouté dans Xamarin.Android 8.3.

AndroidPackageFormat

Propriété de style énumération avec des valeurs valides de apk ou aab. Indique si vous souhaitez empaqueter l’application Android en tant que fichier APK ou Android App Bundle. Les bundles d’applications sont un nouveau format pour les builds Release destinées à être envoyées à Google Play. La valeur par défaut est apk.

Lorsque $(AndroidPackageFormat) est défini sur aab, d’autres propriétés MSBuild sont définies. Celles-ci sont nécessaires pour les bundles d’applications Android :

Cette propriété sera déconseillée pour .net 6. Les utilisateurs doivent passer au plus récent AndroidPackageFormats.

AndroidPackageFormats

Propriété délimitée par des points-virgules avec des valeurs valides de apk et aab. Indique si vous souhaitez empaqueter l’application Android en tant que fichier APK ou Android App Bundle. Les bundles d’applications sont un nouveau format pour les builds Release destinées à être envoyées à Google Play.

Lors de la génération d’une version Release, vous pouvez générer à la fois et aab une apk distribution vers différents magasins.

La définition AndroidPackageFormats à aab;apk laquelle générera les deux. Le paramètre AndroidPackageFormats sur l’une aab ou apk l’autre génère un seul fichier.

Pour .net 6 AndroidPackageFormats , aab;apk la valeur est définie uniquement pour les Release builds. Il est recommandé de continuer à utiliser uniquement apk pour le débogage.

Pour la version héritée de Xamarin.Android, la valeur par défaut est "". Par conséquent, la version héritée de Xamarin.Android ne produit pas par défaut les deux dans le cadre d’une build de mise en production. Si un utilisateur souhaite produire les deux sorties, il doit définir les éléments suivants dans sa Release configuration.

<AndroidPackageFormats>aab;apk</AndroidPackageFormats>

Vous devez également supprimer l’existant AndroidPackageFormat pour cette configuration si vous l’avez.

Ajouté dans Xamarin.Android 11.5.

AndroidPackageNamingPolicy

Propriété enum-style permettant de spécifier les noms de package Java du code source Java généré.

Dans Xamarin.Android 10.2 et versions ultérieures, la seule valeur prise en charge est LowercaseCrc64.

Dans Xamarin.Android 10.1, une valeur transitionnelle LowercaseMD5 a également été disponible qui permettait de revenir au style de nom de package Java d’origine tel qu’utilisé dans Xamarin.Android 10.0 et versions antérieures. Cette option a été supprimée dans Xamarin.Android 10.2 pour améliorer la compatibilité avec les environnements de build dont la conformité FIPS est appliquée.

Ajouté dans Xamarin.Android 10.1.

AndroidProguardMappingFile

Spécifie la -printmapping règle proguard pour r8. Cela signifie que le mapping.txt fichier sera généré dans le $(OutputPath) dossier. Ce fichier peut ensuite être utilisé lors du chargement de packages dans le Google Play Store.

Par défaut, ce fichier est généré automatiquement lors de l’utilisation AndroidLinkTool=r8 et génère le fichier $(OutputPath)mapping.txtsuivant.

Si vous ne souhaitez pas générer ce fichier de mappage, vous pouvez utiliser la propriété pour arrêter de AndroidCreateProguardMappingFile la créer. Ajoutez ce qui suit dans votre projet

<AndroidCreateProguardMappingFile>False</AndroidCreateProguardMappingFile>

ou utiliser -p:AndroidCreateProguardMappingFile=False sur la ligne de commande.

Cette propriété a été ajoutée dans Xamarin.Android 11.2.

AndroidR8IgnoreWarnings

Spécifie la -ignorewarnings règle proguard pour r8. Cela permet r8 de poursuivre la compilation de dex même si certains avertissements sont rencontrés. La valeur par défaut est True, mais peut être définie pour False appliquer un comportement plus strict. Pour plus d’informations, consultez le manuel ProGuard.

Ajouté dans Xamarin.Android 10.3.

AndroidR8JarPath

Chemin d’accès à r8.jar utiliser avec le compilateur et le réducteur r8. La valeur par défaut est un chemin d’accès dans l’installation de Xamarin.Android. Pour plus d’informations, consultez notre documentation sur D8 et R8.

AndroidResgenExtraArgs

Spécifie les options de ligne de commande à passer à la commande aapt lors du traitement des ressources et ressources Android.

AndroidResgenFile

Spécifie le nom du fichier de ressources à générer. Le modèle par défaut définit cette valeur sur Resource.designer.cs.

AndroidSdkBuildToolsVersion

Le package d’outils de build android SDK fournit les outils aapt et zipalign , entre autres. Plusieurs versions différentes du package d’outils de génération peuvent être installées en parallèle. Le package d’outils de génération choisi pour l’empaquetage est réalisé en recherchant et en utilisant, le cas échéant, une version « favorite » des outils de génération ; s’il n’en existe pas, le package d’outils de génération associé à la version la plus récente sera utilisé.

La propriété MSBuild $(AndroidSdkBuildToolsVersion) contient la version préférée des outils de génération. Le système de génération de Xamarin.Android fournit une valeur par défaut dans Xamarin.Android.Common.targets, et vous pouvez remplacer la valeur par défaut dans votre fichier projet et choisir une autre version des outils de génération, si (par exemple) la version la plus récente de aapt plante, alors qu’une version antérieure de aapt est connue pour fonctionner.

AndroidSigningKeyAlias

Spécifie l’alias de la clé dans le magasin de clés. Il s’agit de la valeur keytool -alias utilisée lors de la création du magasin de clés.

AndroidSigningKeyPass

Spécifie le mot de passe de la clé dans le fichier de magasin de clés. C’est la valeur entrée quand keytool demande Entrez le mot clé pour $(AndroidSigningKeyAlias).

Dans Xamarin.Android 10.0 et versions antérieures, cette propriété prend uniquement en charge les mots de passe en texte brut.

Dans Xamarin.Android 10.1 et versions ultérieures, cette propriété prend également en charge env: et file: préfixes qui peuvent être utilisés pour spécifier une variable d’environnement ou un fichier qui contient le mot de passe. Ces options permettent d’empêcher l’affichage du mot de passe dans les journaux de build.

Par exemple, pour utiliser une variable d’environnement nommée AndroidSigningPassword :

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

Pour utiliser un fichier situé à l’adresse C:\Users\user1\AndroidSigningPassword.txtsuivante :

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

Remarque

Le env: préfixe n’est pas pris en charge lorsqu’il $(AndroidPackageFormat) est défini sur aab.

AndroidSigningKeyStore

Spécifie le nom de fichier du magasin de clés créé par keytool. Ceci correspond à la valeur fournie pour l’option keytool -keystore.

AndroidSigningStorePass

Spécifie le mot de passe à $(AndroidSigningKeyStore). C’est la valeur fournie à keytool lors de la création du fichier de magasin de clés et demandée avec Entrez le mot de passe du magasin de clés :.

Dans Xamarin.Android 10.0 et versions antérieures, cette propriété prend uniquement en charge les mots de passe en texte brut.

Dans Xamarin.Android 10.1 et versions ultérieures, cette propriété prend également en charge env: et file: préfixes qui peuvent être utilisés pour spécifier une variable d’environnement ou un fichier qui contient le mot de passe. Ces options permettent d’empêcher l’affichage du mot de passe dans les journaux de build.

Par exemple, pour utiliser une variable d’environnement nommée AndroidSigningPassword :

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

Pour utiliser un fichier situé à l’adresse C:\Users\user1\AndroidSigningPassword.txtsuivante :

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

Remarque

Le env: préfixe n’est pas pris en charge lorsqu’il $(AndroidPackageFormat) est défini sur aab.

AndroidSigningPlatformKey

Spécifie le fichier de clé à utiliser pour signer l’apk. Cela est utilisé uniquement lors de la création system d’applications.

La prise en charge de cette propriété a été ajoutée dans Xamarin.Android 11.3.

AndroidSigningPlatformCert

Spécifie le fichier de certificat à utiliser pour signer l’apk. Cela est utilisé uniquement lors de la création system d’applications.

La prise en charge de cette propriété a été ajoutée dans Xamarin.Android 11.3.

AndroidSupportedAbis

Propriété de chaîne qui contient une liste délimitée par des points-virgules (;)-délimitées par des ABIs qui doivent être incluses dans le .apk.

Les valeurs prises en charge sont :

  • armeabi-v7a
  • x86
  • arm64-v8a : nécessite Xamarin.Android 5.1 et ultérieur.
  • x86_64 : nécessite Xamarin.Android 5.1 et ultérieur.

AndroidTlsProvider

Valeur de chaîne qui spécifie le fournisseur TLS à utiliser dans une application. Les valeurs possibles sont les suivantes :

  • Annuler/la chaîne vide : dans Xamarin.Android 7.3 et versions ultérieures, cela équivaut à btls.

    dans Xamarin.Android 7.1, équivaut à legacy.

    Cela correspond au paramètre Par défaut dans les pages de propriétés de Visual Studio.

  • btls : utilise BoringSSL pour la communication TLS avec HttpWebRequest.

    Cela permet d’utiliser TLS 1.2 sur toutes les versions d’Android.

    Cela correspond au paramètre TLS 1.2+ natif dans les pages de propriétés de Visual Studio.

  • legacy: dans Xamarin.Android 10.1 et versions antérieures, utilisez l’implémentation SSL managée historique pour l’interaction réseau. Cela ne prend pas en charge TLS 1.2.

    Cela correspond au paramètre TLS 1.0 managé dans les pages de propriétés de Visual Studio.

    Dans Xamarin.Android 10.2 et versions ultérieures, cette valeur est ignorée et le btls paramètre est utilisé.

  • default: cette valeur n’est pas susceptible d’être utilisée dans les projets Xamarin.Android. Dans ce cas, la valeur recommandée est une chaîne vide, qui correspond au paramètre Par défaut des pages de propriétés Visual Studio.

    La valeur default n’est pas disponible dans les pages de propriétés Visual Studio.

    Ceci équivaut à legacy.

Ajouté dans Xamarin.Android 7.1.

AndroidUseAapt2

Propriété booléenne qui permet au développeur de contrôler l’utilisation de l’outil pour l’empaquetage aapt2 . Par défaut, cette valeur est False et Xamarin.Android utilise aapt. Si le développeur souhaite utiliser la nouvelle aapt2 fonctionnalité, ajoutez :

<AndroidUseAapt2>True</AndroidUseAapt2>

dans leur .csproj. Fournissez également la propriété sur la ligne de commande :

/p:AndroidUseAapt2=True

Cette propriété a été ajoutée dans Xamarin.Android 8.3. La définition AndroidUseAapt2 à false est déconseillée dans Xamarin.Android 11.2.

AndroidUseApkSigner

Propriété bool qui permet au développeur d’utiliser l’outil apksigner plutôt que jarsigner.

Ajouté dans Xamarin.Android 8.2.

AndroidUseDefaultAotProfile

Propriété bool qui permet au développeur de supprimer l’utilisation des profils AOT par défaut.

Pour supprimer les profils AOT par défaut, définissez la propriété sur false.

Ajouté dans Xamarin.Android 10.1.

AndroidUseInterpreter

Propriété booléenne qui provoque le .apk conteneur de l’interpréteur mono, et non le JIT normal.

Experimental.

La prise en charge de cette propriété a été ajoutée dans Xamarin.Android 11.3.

AndroidUseLegacyVersionCode

Propriété booléenne qui permet au développeur de rétablir le calcul versionCode à son ancien comportement pré Xamarin.Android 8.2. Elle est RÉSERVÉE aux développeurs possédant des applications dans Google Play Store. Il est fortement recommandé d’utiliser la nouvelle propriété $(AndroidVersionCodePattern).

Ajouté dans Xamarin.Android 8.2.

AndroidUseManagedDesignTimeResourceGenerator

Propriété booléenne qui basculera au fil du temps de conception pour utiliser l’analyseur de ressources managée plutôt que aapt.

Ajouté dans Xamarin.Android 8.1.

AndroidUseSharedRuntime

Propriété booléenne qui détermine si les packages de runtime partagé sont requis pour exécuter l’application sur l’appareil cible. Le fait de s’appuyer sur les packages de runtime partagé permet de réduire la taille du package d’application, ce qui accélère le processus de création et de déploiement du package, aboutissant à un cycle de génération/déploiement/débogage plus rapide.

Avant Xamarin.Android 11.2, cette propriété doit être True destinée aux builds Debug et False aux projets Release.

Cette propriété a été supprimée dans Xamarin.Android 11.2.

AndroidVersionCode

Propriété MSBuild qui peut être utilisée comme alternative au /manifest/@android:versionCodeAndroidManifest.xml fichier. Pour choisir cette fonctionnalité, vous devez également activer <GenerateApplicationManifest>true</GenerateApplicationManifest>. Il s’agit de la valeur par défaut de .NET 6.

Cette propriété est ignorée si $(AndroidCreatePackagePerAbi) et $(AndroidVersionCodePattern) sont utilisées.

@android:versionCode est une valeur entière qui doit être incrémentée pour chaque version de Google Play. Consultez la documentation Android pour plus d’informations sur la configuration requise pour /manifest/@android:versionCode.

La prise en charge de cette propriété a été ajoutée dans Xamarin.Android 11.3.

AndroidVersionCodePattern

Propriété de chaîne qui permet au développeur de personnaliser le versionCode manifeste. Consultez Création de code de version pour APK pour plus d’informations sur le choix d’un versionCode.

Voici des exemples : si abi est armeabi et si versionCode dans le manifeste est 123, {abi}{versionCode} produit un code de version 1123 quand $(AndroidCreatePackagePerAbi) a la valeur True ; sinon il produit la valeur 123. Si abi est x86_64 et versionCode dans le manifeste est 44. Ceci produit 544 quand $(AndroidCreatePackagePerAbi) est True ; sinon, il produit la valeur 44.

Si nous incluons une chaîne avec remplissage à gauche {abi}{versionCode:0000}, ceci produit 50044, car nous remplissons le versionCode à gauche avec 0. Vous pouvez également utiliser le remplissage décimal tel que {abi}{versionCode:D4} qui fait la même chose que l’exemple précédent.

Seules les chaînes avec le format de remplissage « 0 » et « Dx » sont prises en charge, car la valeur DOIT être un entier.

Éléments clés prédéfinis

  • abi : insère l’abi ciblé pour l’application

    • 2 – armeabi-v7a
    • 3 – x86
    • 4 – arm64-v8a
    • 5 – x86_64
  • minSDK : insère la valeur minimale prise en charge du Kit de développement logiciel (SDK) prise en charge à partir du AndroidManifest.xml ou 11 si aucune valeur n’est définie.

  • versionCode : utilise le code de version directement à partir de Properties\AndroidManifest.xml.

Vous pouvez définir des éléments personnalisés en utilisant la propriété $(AndroidVersionCodeProperties) (définie ensuite).

La valeur par défaut est {abi}{versionCode:D6}. Si un développeur souhaite conserver l’ancien comportement, vous pouvez la remplacer en définissant la propriété $(AndroidUseLegacyVersionCode) sur true.

Ajouté dans Xamarin.Android 7.2.

AndroidVersionCodeProperties

Propriété de chaîne qui permet au développeur de définir des éléments personnalisés à utiliser avec le $(AndroidVersionCodePattern). Ils sont sous la forme d’une paire key=value. Tous les éléments dans value doivent être des valeurs entières. Par exemple : screen=23;target=$(_AndroidApiLevel). Vous constatez que vous pouvez utiliser des propriétés MSBuild existantes ou personnalisées dans la chaîne.

Ajouté dans Xamarin.Android 7.2.

ApplicationId

Propriété MSBuild qui peut être utilisée comme alternative au /manifest/@packageAndroidManifest.xml fichier. Pour choisir cette fonctionnalité, vous devez également activer <GenerateApplicationManifest>true</GenerateApplicationManifest>. Il s’agit de la valeur par défaut de .NET 6.

Consultez la documentation Android pour plus d’informations sur la configuration requise pour /manifest/@package.

La prise en charge de cette propriété a été ajoutée dans Xamarin.Android 11.3.

ApplicationTitle

Propriété MSBuild qui peut être utilisée comme alternative au /manifest/application/@android:labelAndroidManifest.xml fichier. Pour choisir cette fonctionnalité, vous devez également activer <GenerateApplicationManifest>true</GenerateApplicationManifest>. Il s’agit de la valeur par défaut de .NET 6.

Consultez la documentation Android pour plus d’informations sur la configuration requise pour /manifest/application/@android:label.

La prise en charge de cette propriété a été ajoutée dans Xamarin.Android 11.3.

ApplicationVersion

Propriété MSBuild qui peut être utilisée comme alternative au /manifest/@android:versionNameAndroidManifest.xml fichier. Pour choisir cette fonctionnalité, vous devez également activer <GenerateApplicationManifest>true</GenerateApplicationManifest>. Il s’agit de la valeur par défaut de .NET 6.

Consultez la documentation Android pour plus d’informations sur la configuration requise pour /manifest/@android:versionName.

La prise en charge de cette propriété a été ajoutée dans Xamarin.Android 11.3.

AotAssemblies

Propriété booléenne qui détermine si les assemblys seront compilés à l’avance dans le code natif et inclus dans le .apk.

La prise en charge de cette propriété a été ajoutée dans Xamarin.Android 5.1.

Cette propriété est définie par défaut sur False.

AProfUtilExtraOptions

Options supplémentaires à passer à aprofutil.

BeforeGenerateAndroidManifest

Les cibles MSBuild répertoriées dans cette propriété s’exécutent directement avant _GenerateJavaStubs.

Ajouté dans Xamarin.Android 9.4.

Configuration

Spécifie la configuration de build à utiliser, telle que « Déboguer » ou « Release ». La propriété Configuration est utilisée pour déterminer les valeurs par défaut pour d’autres propriétés qui déterminent le comportement de la cible. Vous pouvez créer des configurations supplémentaires dans votre IDE.

Par défaut, la Debug configuration entraîne la Install Et SignAndroidPackage cible la création d’un package Android plus petit qui nécessite la présence d’autres fichiers et packages pour fonctionner.

La configuration par défaut Release entraîne la Install Et SignAndroidPackagecible la création d’un package Android autonome et peut être utilisée sans installer d’autres packages ou fichiers.

DebugSymbols

Valeur booléenne qui détermine si le package Android est débogueur, en combinaison avec la $(DebugType) propriété. Un package débogueur contient des symboles de débogage, définit l’attribut //application/@android:debuggabletruesur et ajoute automatiquement leINTERNET autorisation pour qu’un débogueur puisse s’attacher au processus. Une application est débogable si DebugSymbols est True, et siDebugType est une chaîne vide ou Full.

DebugType

Spécifie le type de symboles de débogage à générer dans le cadre de la build, ce qui affecte également si l’application est débogueable. Valeurs possibles :

  • Full : des symboles complets sont générés. Si le DebugSymbols La propriété MSBuild est également True, puis le package d’application est débogueur.

  • PdbOnly: les symboles « PDB » sont générés. Le package d’application n’est pas débogueur.

Si DebugType n’est pas défini ou est une chaîne vide, la propriété DebugSymbols contrôle si l’application est ou non débogable.

EmbedAssembliesIntoApk

Propriété booléenne qui détermine si les assemblys de l’application doivent être incorporés ou non dans le package d’application.

Cette propriété doit être définie sur True pour les versions Release, et sur False pour les projets Debug. Sa valeur doit être True dans les versions Debug si le déploiement rapide ne prend pas en charge l’appareil cible.

Lorsque cette propriété est False, alors le $(AndroidFastDeploymentType) La propriété MSBuild contrôle également ce qui sera incorporé dans le , ce qui peut avoir un impact sur les .apktemps de déploiement et de reconstruction.

EnableLLVM

Propriété booléenne qui détermine si LLVM sera utilisée ou non lors de la compilation anticipée des assemblys dans du code natif.

Le kit de développement logiciel (NDK) Android doit être installé pour générer un projet sur lequel cette propriété est activée.

La prise en charge de cette propriété a été ajoutée dans Xamarin.Android 5.1.

Cette propriété est définie par défaut sur False.

Cette propriété est ignorée sauf si la propriété MSBuild $(AotAssemblies) est définie sur True.

EnableProguard

Propriété booléenne qui détermine si proguard est exécuté dans le cadre du processus d’empaquetage pour lier du code Java.

La prise en charge de cette propriété a été ajoutée dans Xamarin.Android 5.1.

Cette propriété est définie par défaut sur False.

Lorsque True, les fichiers @(ProguardConfiguration) sont utilisés pour contrôler proguard l’exécution.

GenerateApplicationManifest

Active ou désactive les propriétés MSBuild suivantes qui émettent des valeurs dans le fichier final AndroidManifest.xml :

La valeur $(GenerateApplicationManifest) par défaut est true dans .NET 6 et false dans « legacy » Xamarin.Android.

La prise en charge de cette propriété a été ajoutée dans Xamarin.Android 11.3.

JavaMaximumHeapSize

Spécifie la valeur du paramètre Java-Xmx à utiliser lors de la génération du .dex fichier dans le cadre du processus d’empaquetage. Si non spécifié, l’option -Xmx fournit java avec la valeur 1G. Ceci est couramment requis sur Windows par rapport à d’autres plateformes.

Personnalisez la valeur en changeant :

<JavaMaximumHeapSize>1G</JavaMaximumHeapSize>

JavaOptions

Spécifie les options de ligne de commande à passer à java lors de la génération du .dex fichier.

JarsignerTimestampAuthorityCertificateAlias

Cette propriété vous permet de spécifier un alias dans le magasin de clés pour une autorité d’horodatage. Pour plus d’informations, consultez la documentation de prise en charge de l’horodatage de signature Java.

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

JarsignerTimestampAuthorityUrl

Cette propriété vous permet de spécifier une URL vers un service d’autorité d’horodatage. Cela peut être utilisé pour vous assurer que votre .apk signature inclut un horodatage. Pour plus d’informations, consultez la documentation de prise en charge de l’horodatage de signature Java.

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

LinkerDumpDependencies

Propriété bool qui permet de générer un fichier de dépendances de l’éditeur de liens. Ce fichier peut être utilisé en tant qu’entrée pour l’outil illinkanalyzer.

Le fichier de dépendances nommé linker-dependencies.xml.gz est écrit dans le répertoire du projet. Sur. NET5/6 est écrit en regard des assemblys liés dans obj/<Configuration>/android<ABI>/linked le répertoire.

La valeur par défaut est Faux.

MandroidI18n

Spécifie la prise en charge de l’internationalisation incluse dans l’application, comme le classement et le tri des tables. La valeur est une liste (délimitée par des virgules ou des points-virgules) d’une ou plusieurs des valeurs suivantes, qui ne respectent pas la casse :

  • None : n’inclure aucun encodage supplémentaire.

  • All : inclure tous les encodages disponibles.

  • CJK : Inclure des encodages chinois, japonais et coréens tels que japonais (EUC) [enc-jp, CP51932], japonais (Shift-JIS) [iso-2022-jp, shift_jis, CP932], japonais (JIS) [CP50220], chinois simplifié (GB2312) [gb2312, CP936], Coréen (UHC) [ks_c_5601-1987, CP949], Coréen (EUC) [euc-kr, CP51949], Chinois traditionnel (Big5) [big5, CP950] et Chinois simplifié (GB18030) [GB18030, CP54936].

  • MidEast : Inclure des encodages moyen-orientaux tels que turc (Windows) [iso-8859-9, CP1254], hébreu (Windows) [windows-1255, CP1255], arabe (Windows) [windows-1256, CP1256], arabe (ISO) [iso-8859-6, CP28596], hébreu (ISO) [iso-8859-8, CP28598], latin 5 (ISO) [iso-8859-9, CP28599] et hébreu (alternative Iso) [iso-8859-8, CP38598].

  • Autre : Inclure d’autres encodages tels que Cyrillique (Windows) [CP1251], Baltique (Windows) [iso-8859-4, CP1257], Vietnamien (Windows) [CP1258], Cyrillique (KOI8-R) [koi8-r, CP1251], Ukrainien (KOI8-U) [koi8-u, CP1251], Baltique (ISO) [iso-8859-4, CP1257], Cyrillique (ISO) [iso-8859-5, CP1251], ISCII Davenagari [x-iscii-de, CP57002], ISCII Bengali [x-iscii-be, CP57003], ISCII Tamil [x-iscii-ta, CP57004], ISCII Telugu [x-iscii-te, CP57005], ISCII Assamese [x-iscii-as, CP57006], ISCII Oriya [x-iscii-or, ou, CP57007], ISCII Kannada [x-iscii-ka, CP57008], ISCII Malayalam [x-iscii-ma, CP57009], ISCII Gujarati [x-iscii-gu, CP57010], ISCII Punjabi [x-iscii-pa, CP57011] et Thaï (Windows) [CP874].

  • Rare : Inclure des encodages rares tels qu’IBM EBCDIC (turc) [CP1026], IBM EBCDIC (Open Systems Latin 1) [CP1047], IBM EBCDIC (US-Canada avec Euro) [CP1140], IBM EBCDIC (Allemagne avec Euro) [CP1141], IBM EBCDIC (Danemark/Norvège avec Euro) [CP1142], IBM EBCDIC (Finlande/Suède avec Euro) [CP1143], IBM EBCDIC (Italie avec Euro) [CP1144], IBM EBCDIC (Amérique latine/Espagne avec Euro) [CP1145], IBM EBCDIC (Royaume-Uni avec Euro) [CP1146], IBM EBCDIC (France avec Euro) [CP1147], IBM EBCDIC (International with Euro) [CP1148], IBM EBCDIC (Islandais avec Euro) [CP1149], IBM EBCDIC (Allemagne) [CP20273], IBM EBCDIC (Danemark/Norvège) [CP20277], IBM EBCDIC (Finlande/Suède) [CP20278], IBM EBCDIC (Italie) [CP20280], IBM EBCDIC (Amérique latine/Espagne) [CP20284], IBM EBCDIC (Royaume-Uni) [CP20285], IBM EBCDIC (Japonais Katakana Extended) [CP20290], IBM EBCDIC (France) [CP20297], IBM EBCDIC (Arabe) [CP20420], IBM EBCDIC (hébreu) [CP20424], IBM EBCDIC (Islande) [CP20871], IBM EBCDIC (Cyrillique - Serbe, Bulgare) [CP21025], IBM EBCDIC (US-Canada) [CP37], IBM EBCDIC (International) [CP500], Arabe (ASMO 708) [CP708], Europe centrale (DOS) [CP852], Cyrillique (DOS) [CP855], Turc (DOS) [CP857], Europe occidentale (DOS avec Euro) [CP858], Hébreu (DOS) [CP862], Arabe (DOS) [CP88] [CP864], Russe (DOS) [CP866], Grec (DOS) [CP869], IBM EBCDIC (Latin 2) [CP870] et IBM EBCDIC (Grec) [CP875].

  • Ouest : inclure des encodages occidentaux tels que l’Europe occidentale (Mac) [macintosh, CP10000], Islandais (Mac) [x-mac-islandais, CP10079], Europe centrale (Windows) [iso-8859-2, CP1250], Europe occidentale (Windows) [iso-8859-1, CP1252], Grec (Windows) [iso-8859-7, CP1253], Europe centrale (ISO) [iso-8859-2, CP28592], Latin 3 (ISO) [iso-8859-3, CP28593], Grec (ISO) [iso-8859-7, CP28597], Latin 9 (ISO) [iso-8859-15, CP28605], OEM États-Unis [CP437], Western European (DOS) [CP850], Portugais (DOS) [CP860], Islandais (DOS) [CP861], Français Canadien (DOS) [CP863] et Nordique (DOS) [CP865].

<MandroidI18n>West</MandroidI18n>

MonoAndroidResourcePrefix

Spécifie un préfixe de chemin d’accès supprimé du début des noms de fichiers avec une action build de AndroidResource. Ceci permet de changer l’emplacement où se trouvent les ressources.

La valeur par défaut est Resources. Changez ceci en res pour la structure de projet Java.

MonoSymbolArchive

Propriété booléenne qui contrôle si .mSYM les artefacts sont créés pour une utilisation ultérieure avec mono-symbolicate, afin d’extraire les informations de nom de fichier et de numéro de ligne « réels » des traces de la pile Release.

Cette valeur est True par défaut pour les applications « Release » qui ont activé les symboles de débogage : $(EmbedAssembliesIntoApk) a la valeur True, $(DebugSymbols) a la valeur True, et $(Optimize) est Vrai.

Ajouté dans Xamarin.Android 7.1.