Partager via


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.

AndroidAapt2CompileExtraArgs

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

AndroidAapt2LinkExtraArgs

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

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.

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.

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.

AndroidApkSignerAdditionalArguments

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

AndroidApkSigningAlgorithm

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

La valeur par défaut est SHA256withRSA.

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.

AndroidAvoidEmitForPerformance

Propriété booléenne qui détermine si elle est « évitée » ou non System.Reflection.Emit pour améliorer les performances de démarrage. Cette propriété est définie par défaut sur True.

L’utilisation a System.Reflection.Emit un impact notable sur les performances de démarrage sur Android. Ce comportement est désactivé par défaut pour les commutateurs de fonctionnalités suivants :

  • Switch.System.Reflection.ForceInterpretedInvoke: après le deuxième appel vers MethodInfo.Invoke() ou ConstructorInfo.Invoke(), le code est émis pour améliorer les performances des appels répétés.

  • Microsoft.Extensions.DependencyInjection.DisableDynamicEngine: après le deuxième appel pour récupérer un service à partir d’un conteneur d’injection de dépendances, le code est émis pour améliorer les performances des appels répétés.

Il est souhaitable dans la plupart des applications Android de désactiver ce comportement.

Consultez la documentation sur les commutateurs de fonctionnalités bibliothèques de classes de base pour plus d’informations sur les commutateurs de fonctionnalités disponibles.

Ajouté dans .NET 8.

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 la charge de travail .NET pour Android.

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

AndroidBoundExceptionType

Valeur de chaîne qui spécifie comment les exceptions doivent être propagées lorsqu’un type .NET pour 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

  • 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.IOException Exception.InnerException valeur.)

    System est la valeur par défaut.

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.

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.

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. .NET pour Android configure automatiquement certains de ces paramètres, y compris 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.

AndroidBundleToolExtraArgs

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

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 : cette valeur est obsolète et n’est plus prise en charge.

AndroidCodegenTarget

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

  • XamarinAndroid : cette valeur est obsolète et n’est plus prise en charge.

  • 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.

La valeur par défaut est XAJavaInterop1.

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.

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.

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.

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 .NET pour 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)=dx False

AndroidEnableGooglePlayStoreChecks

Propriété bool qui permet aux développeurs de désactiver les vérifications de Google Play Store suivantes : XA1004, XA1005 et XA1006. La désactivation de ces vérifications est utile pour les développeurs qui ne ciblent pas google Play Store et ne souhaitent pas exécuter ces vérifications.

AndroidEnableMarshalMethods

Propriété bool qui détermine si les méthodes de marshaling LLVM sont activées ou non. Les méthodes de marshaling LLVM sont une optimisation de démarrage d’application qui utilise des points d’entrée natifs pour l’inscription de méthode Java native .

Cette propriété a la valeur False par défaut.

Ajouté dans .NET 8.

AndroidEnableMultiDex

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

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

AndroidEnableObsoleteOverrideInheritance

Propriété booléenne qui détermine si les méthodes liées héritent [Obsolete] automatiquement des attributs des méthodes qu’elles remplacent.

La prise en charge de cette propriété a été ajoutée dans .NET 8.

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

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.

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 est False.

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.

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

AndroidEnableRestrictToAttributes

Propriété de style énumération avec des valeurs valides de obsolete et disable.

Lorsqu’il est défini obsoletesur , les types et les membres marqués avec l’annotation androidx.annotation.RestrictTo Java ou qui se trouvent dans des packages Java non exportés sont marqués avec un [Obsolete] attribut dans la liaison C#.

Cet [Obsolete] attribut a un message descriptif expliquant que le propriétaire du package Java considère que l’API est « interne » et avertit de son utilisation.

Cet attribut a également un code XAOBS001 d’avertissement personnalisé afin qu’il puisse être supprimé indépendamment de l’API obsolète « normale ».

Lorsque la valeur est définie disable, l’API est générée normalement sans attributs supplémentaires. (Il s’agit du même comportement que avant .NET 8.)

L’ajout d’attributs [Obsolete] au lieu de supprimer automatiquement l’API a été effectué pour préserver la compatibilité des API avec les packages existants. Si vous préférez plutôt supprimer des membres qui ont l’annotation @RestrictTo ou qui se trouvent dans des packages Java non exportés, vous pouvez utiliser les fichiers Transform en plus de cette propriété pour empêcher ces types d’être liés :

<remove-node path="//*[@annotated-visibility]" />

La prise en charge de cette propriété a été ajoutée dans .NET 8.

Cette propriété est définie obsolete par défaut.

AndroidEnableSGenConcurrent

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

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é.

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

AndroidExplicitCrunch

Cette propriété n’est plus prise en charge.

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.

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.

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. 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"

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.

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).

Dans .NET 6 et versions ultérieures, cette propriété a effet uniquement lorsqu’elle est utilisée avec $(UseNativeHttpHandler)=true. Les valeurs les plus couramment utilisées pour cette propriété sont :

  • Xamarin.Android.Net.AndroidMessageHandler: utilisez les API Java Android pour effectuer des requêtes HTTP. Il est similaire à l’héritage Xamarin.Android.Net.AndroidClientHandler avec plusieurs améliorations. Il prend en charge HTTP 1.1 et TLS 1.2. Il s’agit du gestionnaire de messages HTTP par défaut.

  • System.Net.Http.SocketsHttpHandler, System.Net.Http: gestionnaire de messages par défaut dans .NET. Il prend en charge HTTP/2, TLS 1.2 et il s’agit du gestionnaire de messages HTTP recommandé à utiliser avec Grpc.Net.Client. Cette valeur est équivalente à $(UseNativeHttpHandler)=false.

  • 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

Dans .NET 6, le type que vous spécifiez ne doit pas être Xamarin.Android.Net.AndroidClientHandler ou System.Net.Http.HttpClientHandler hériter de l’une de ces classes. Si vous migrez à partir de « classic » Xamarin.Android, utilisez AndroidMessageHandler ou dérivez votre gestionnaire personnalisé à partir de celui-ci à la place.

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.

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.sh ARCH être l’un des suivants :

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

AndroidIncludeAssetPacksInPackage

Cette propriété contrôle si une build Asset Packs est automatiquement incluse dans le fichier final .aab . La valeur par défaut trueest .

Dans certains cas, l’utilisateur peut vouloir libérer une version intermédiaire. Dans ces cas, l’utilisateur n’a pas besoin de mettre à jour le pack d’éléments multimédias. En particulier si le contenu du pack d’éléments multimédias n’a pas changé. Cette propriété permet à l’utilisateur d’ignorer les packs d’éléments multimédias s’ils ne sont pas requis.

Ajouté dans .NET 9

AndroidInstallJavaDependencies

La valeur par défaut est true pour les builds de ligne de commande. Quand la valeur est définie true, active l’installation du Kit de développement logiciel (SDK) Java lors de l’exécution de la <InstallAndroidDependencies/> cible.

La prise en charge de cette propriété a été ajoutée dans .NET 9.

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.

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 autorisées 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.

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 à vérifier.

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.

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 manifestmerger.jar. Si vous souhaitez utiliser l’ancienne version, ajoutez ce qui suit à votre csproj

<AndroidManifestMerger>legacy</AndroidManifestMerger>

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

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>

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.

Si $(AndroidManifestType) ce n’est pas défini, Xamarin il 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.

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.

La valeur par défaut concerne aab;apk Release uniquement les builds. Il est recommandé de continuer à utiliser uniquement apk pour le débogage.

AndroidPackageNamingPolicy

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

La seule valeur possible est LowercaseCrc64.

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.

AndroidD8IgnoreWarnings

Spécifie --map-diagnostics warning info à passer à d8. 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 code source D8 et R8.

Ajouté dans .NET 8.

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.

À compter de .NET 8, spécifie --map-diagnostics warning info. Pour plus d’informations, consultez le code source D8 et R8.

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 à l’installation de la charge de travail .NET pour 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 .NET pour Android fournit une valeur Xamarin.Android.Common.targetspar défaut, et la valeur par défaut peut être remplacée dans votre fichier projet pour choisir une autre version des outils de build, si (par exemple) le dernier aapt se bloque pendant qu’une version aapt précédente 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).

Cette propriété prend également en charge les préfixes env: et file: 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 génération.

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 :.

Cette propriété prend également en charge les préfixes env: et file: 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 génération.

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.

AndroidSigningPlatformCert

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

AndroidStripILAfterAOT

Propriété bool qui spécifie si les corps de méthode des méthodes compilées AOT seront supprimés.

La valeur par défaut est false, et les corps de méthode des méthodes compilées AOT ne seront pas supprimés.

Lorsqu’il est défini truesur , $(AndroidEnableProfiledAot) est défini false par défaut. Cela signifie que dans les builds de configuration Release , dans lesquelles $(RunAOTCompilation) est true par défaut , AOT est activé pour tout. Cela peut entraîner une augmentation des tailles d’application. Ce comportement peut être substitué en définissant $(AndroidEnableProfiledAot) true explicitement la valeur dans votre fichier projet.

La prise en charge de cette propriété a été ajoutée dans .NET 8.

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
  • x86_64

AndroidTlsProvider

Cette propriété est obsolète et ne doit pas être utilisée.

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 True.

Cette propriété ne peut pas être définie sur false.

AndroidUseApkSigner

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

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.

AndroidUseDesignerAssembly

Propriété bool qui contrôle si le système de génération génère un _Microsoft.Android.Resource.Designer.dll objet apposed dans un Resource.Designer.cs fichier. Les avantages de cette opération sont des applications plus petites et une durée de démarrage plus rapide.

La valeur par défaut est true dans .NET 8.

En tant qu’auteur Nuget, il est recommandé d’expédier trois versions de l’assembly si vous souhaitez maintenir la compatibilité descendante. Un pour MonoAndroid, un pour net6.0-android et un pour net8.0-android. Pour ce faire, utilisez Xamarin.Legacy.Sdk. Cela n’est nécessaire que si votre projet de bibliothèque Nuget utilise des AndroidResource éléments dans le projet ou via une dépendance.

<TargetFrameworks>monoandroid90;net6.0-android;net8.0-android</TargetFrameworks>

Vous pouvez également désactiver ce paramètre jusqu’à ce que l’heure de l’application Classic et net7.0-android ait été déconseillée.

Les projets .NET 8 qui choisissent de désactiver ce paramètre ne pourront pas consommer de références qui l’utilisent. Si vous essayez d’utiliser un assembly sur lequel cette fonctionnalité est activée dans un projet qui ne le fait pas, vous obtiendrez une XA1034 erreur de génération.

Ajouté dans .NET 8.

AndroidUseInterpreter

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

Experimental.

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).

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.

AndroidUseNegotiateAuthentication

Propriété booléenne qui permet la prise en charge de l’authentification NTLMv2/Negotiate dans AndroidMessageHandler. La valeur par défaut est Faux.

Ajouté dans .NET 7.

AndroidUseSharedRuntime

Cette propriété est obsolète et ne doit pas être utilisée.

AndroidVersionCode

Propriété MSBuild qui peut être utilisée comme alternative au /manifest/@android:versionCode AndroidManifest.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.

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.

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.

ApplicationId

Propriété MSBuild qui peut être utilisée comme alternative au /manifest/@package AndroidManifest.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.

ApplicationTitle

Propriété MSBuild qui peut être utilisée comme alternative au /manifest/application/@android:label AndroidManifest.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.

ApplicationVersion

Propriété MSBuild qui peut être utilisée comme alternative au /manifest/@android:versionName AndroidManifest.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.

AotAssemblies

Propriété booléenne qui détermine si les assemblys seront compilés à l’avance dans le code natif et inclus dans les applications. Cette propriété est définie par défaut sur False.

Déconseillé dans .NET 7. Migrez vers la nouvelle $(RunAOTCompilation) propriété MSBuild à la place, car la prise en charge $(AotAssemblies) sera supprimée dans une prochaine version.

AProfUtilExtraOptions

Options supplémentaires à passer à aprofutil.

BeforeBuildAndroidAssetPacks

Les cibles MSBuild répertoriées dans cette propriété s’exécutent directement avant la génération des AssetPack éléments.

Ajouté dans .NET 9

BeforeGenerateAndroidManifest

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

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 etSignAndroidPackage 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 etSignAndroidPackagecible 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:debuggable truesur et ajoute automatiquement leINTERNET autorisation pour qu’un débogueur puisse s’attacher au processus. Une application est débogueur si DebugSymbols elle est True et DebugType est la 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.

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.

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.

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.

La spécification de cette propriété est nécessaire si la cible _CompileDex lève une erreur java.lang.OutOfMemoryError.

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.

RunAOTCompilation

Propriété booléenne qui détermine si les assemblys seront compilés à l’avance dans le code natif et inclus dans les applications. Cette propriété est False par défaut pour les Debug builds et True par défaut pour les Release builds.

Cette propriété MSBuild remplace la $(AotAssemblies) propriété MSBuild de Xamarin.Android. Il s’agit de la même propriété utilisée pour Blazor WASM.