Propriétés MSBuild des projets de liaison

Remarque

Dans .NET pour Android, il n’existe techniquement aucune distinction entre une application et un projet de liaisons. Ces propriétés fonctionnent donc dans les deux. Dans la pratique, il est vivement recommandé de créer des projets d’application et de liaisons distincts. Les propriétés de build qui sont principalement utilisées dans les projets d’application sont documentées dans le guide de référence des propriétés MSBuild.

Propriétés de la compilation

Propriété Défaut Description
AndroidBoundInterfacesContainConstants true Propriété booléenne qui spécifie si les constantes de liaison sur les interfaces sont prises en charge ou si la solution de contournement héritée de la création d’une IMyInterfaceConsts classe sera utilisée.

Documentation
AndroidBoundInterfacesContainStatic
AndDefaultInterfaceMethods
true Propriété booléenne qui spécifie si les membres par défaut et statiques sur les interfaces seront pris en charge, ou si la solution de contournement traditionnelle consistant à créer une classe sœur contenant des membres statiques comme abstract class MyInterface sera utilisée.

Documentation
AndroidBoundInterfacesContainTypes true Propriété booléenne qui spécifie si les types imbriqués dans les interfaces seront pris en charge, ou si l'on utilisera la solution de contournement héritée consistant à créer un type non imbriqué comme IMyInterfaceMyNestedClass.

Documentation
AndroidEnableObsoleteOverrideInheritance
Ajouté dans .NET 8
true Propriété booléenne qui spécifie si les méthodes liées qui remplacent @Deprecated les méthodes Java sont automatiquement marquées comme @Deprecated.

Documentation
AndroidEnableRestrictToAttributes
Ajouté dans .NET 8
obsolete Propriété de style énumération avec des valeurs valides de obsolete et disable qui spécifie si l’attribut .NET [Obsolete] est ajouté à l’API liée et marquée avec @RestrictTo dans la bibliothèque Java.

Documentation
AndroidJavadocVerbosity intellisense Propriété de style énumération avec des valeurs valides intellisense et full qui spécifie comment la documentation XML de C# doit s'afficher lors de l’importation de la documentation Javadoc dans des projets de liaison à l'aide de l'action de build @(JavaSourceJar).

Documentation

InterfacesLiéesAndroidContiennentDesConstantes

Propriété booléenne qui spécifie si les constantes de liaison sur les interfaces sont prises en charge ou si la solution de contournement héritée de la création d’une IMyInterfaceConsts classe sera utilisée.

La valeur par défaut est true.

Cela est recommandé uniquement si vous essayez de maintenir la compatibilité des API publiques avec une bibliothèque de liaisons héritée créée avant la publication de C# 8.

En savoir plus

InterfacesLiéesÀAndroidContiennentDesMéthodesD'InterfaceStatiquesEtParDéfaut

Propriété booléenne qui spécifie si les membres par défaut et statiques sur les interfaces sont pris en charge, ou si la solution de contournement héritée de la création d'une classe sœur contenant des membres statiques comme abstract class MyInterface sera utilisée.

La valeur par défaut est true.

Cela est recommandé uniquement si vous essayez de maintenir la compatibilité des API publiques avec une bibliothèque de liaisons héritée créée avant la publication de C# 8.

En savoir plus

InterfacesLiéesAndroidContiennentTypes

Propriété booléenne qui spécifie si les types imbriqués dans les interfaces seront pris en charge, ou si l'ancienne solution de contournement consistant à créer un type non imbriqué comme IMyInterfaceMyNestedClass sera utilisée.

La valeur par défaut est true.

Cela est recommandé uniquement si vous essayez de maintenir la compatibilité des API publiques avec une bibliothèque de liaisons héritée créée avant la publication de C# 8.

En savoir plus

AndroidEnableRestrictToAttributes

Propriété de style énumération avec des valeurs valides obsolete et disable, qui détermine si l'attribut .NET [Obsolete] est ajouté à l'API liée qui est marquée avec @RestrictTo dans une bibliothèque Java.

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

Lorsqu’il est défini sur obsolete, les types et les membres marqués avec l’annotation androidx.annotation.RestrictToJava ou dans des packages Java non exportés sont marqués d'un attribut [Obsolete] 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 des métadonnées 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.

AndroidEnableObsoleteOverrideInheritance

Propriété booléenne qui spécifie si les méthodes liées qui remplacent @Deprecated les méthodes Java sont automatiquement marquées comme @Deprecated.

Il est extrêmement rare de devoir modifier cette propriété.

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

Android-Javadoc-Verbosity

Propriété de style énumération avec des valeurs valides intellisense et full qui spécifie comment la documentation XML de C# doit s'afficher lors de l’importation de la documentation Javadoc dans des projets de liaison à l'aide de l'action de build @(JavaSourceJar).

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