Compartir a través de


Propiedades de MSBuild de proyectos de enlace

Nota:

En .NET para Android no hay técnicamente ninguna distinción entre una aplicación y un proyecto de enlaces, por lo que estas propiedades funcionarán en ambos. En la práctica, se recomienda crear proyectos de aplicación y enlaces independientes. Las propiedades de compilación que se usan principalmente en los proyectos de aplicación se documentan en la guía de referencia de propiedades de MSBuild.

Propiedades de compilación

Propiedad Valor predeterminado Descripción
AndroidBoundInterfacesContainConstants true Propiedad booleana que especifica si se admitirán constantes de enlace en interfaces o si se usará la solución alternativa heredada para crear una IMyInterfaceConsts clase.

Documentación
AndroidBoundInterfacesContainStatic
AndDefaultInterfaceMethods
true Una propiedad booleana que especifica si se admitirán miembros predeterminados y estáticos en interfaces, o bien se usará la solución alternativa heredada para crear una clase del mismo nivel que contenga miembros estáticos como abstract class MyInterface .

Documentación
AndroidBoundInterfacesContainTypes true Propiedad booleana que especifica si se admitirán tipos anidados en interfaces o la solución alternativa heredada de crear un tipo no anidado como IMyInterfaceMyNestedClass se usará.

Documentación
AndroidEnableObsoleteOverrideInheritance
Agregado en .NET 8
true Propiedad booleana que especifica si los métodos enlazados que invalidan @Deprecated los métodos de Java se marcan automáticamente como @Deprecated.

Documentación
AndroidEnableRestrictToAttributes
Agregado en .NET 8
obsolete Propiedad de estilo de enumeración con valores válidos de obsolete y disable que especifica si el atributo .NET [Obsolete] se agrega a la API enlazada marcada con @RestrictTo en una biblioteca de Java.

Documentación
AndroidJavadocVerbosity intellisense Una propiedad de estilo de enumeración con valores intellisense válidos y full que especifica cómo deben ser comentarios de documentación XML de C# "detallados" al importar documentación de Javadoc en proyectos de enlace mediante la @(JavaSourceJar) acción de compilación.

Documentación

AndroidBoundInterfacesContainConstants

Propiedad booleana que especifica si se admitirán constantes de enlace en interfaces o si se usará la solución alternativa heredada para crear una IMyInterfaceConsts clase.

El valor predeterminado es true.

Esto solo se recomienda si se intenta mantener la compatibilidad de api pública con una biblioteca de enlaces heredada creada antes de que se publicara C# 8.

Más detalles

AndroidBoundInterfacesContainStaticAndDefaultInterfaceMethods

Una propiedad booleana que especifica si se admitirán los miembros predeterminados y estáticos en las interfaces, o si se usará la solución alternativa heredada para crear una clase del mismo nivel que contenga miembros estáticos como abstract class MyInterface .

El valor predeterminado es true.

Esto solo se recomienda si se intenta mantener la compatibilidad de api pública con una biblioteca de enlaces heredada creada antes de que se publicara C# 8.

Más detalles

AndroidBoundInterfacesContainTypes

Una propiedad booleana que especifica si se admitirán tipos anidados en interfaces o si se usará la solución alternativa heredada para crear un tipo no anidado como IMyInterfaceMyNestedClass .

El valor predeterminado es true.

Esto solo se recomienda si se intenta mantener la compatibilidad de api pública con una biblioteca de enlaces heredada creada antes de que se publicara C# 8.

Más detalles

AndroidEnableRestrictToAttributes

Propiedad de estilo de enumeración con valores válidos de obsolete y disable que controla si el atributo .NET [Obsolete] se agrega a la API enlazada marcada con @RestrictTo en una biblioteca de Java.

Esta propiedad se establece obsolete en de forma predeterminada.

Cuando se establece obsoleteen , los tipos y los miembros marcados con la anotación androidx.annotation.RestrictTo de Java o que están en paquetes de Java no exportados se marcarán con un [Obsolete] atributo en el enlace de C#.

Este [Obsolete] atributo tiene un mensaje descriptivo que explica que el propietario del paquete de Java considera que la API es "interna" y advierte sobre su uso.

Este atributo también tiene un código XAOBS001 de advertencia personalizado para que se pueda suprimir independientemente de la API obsoleta "normal".

Cuando se establece disableen , la API se generará como normal sin atributos adicionales. (Este es el mismo comportamiento que antes de .NET 8).

La adición [Obsolete] de atributos en lugar de quitar automáticamente la API se ha realizado para conservar la compatibilidad de api con los paquetes existentes. Si prefiere quitar miembros que tienen la @RestrictTo anotación o están en paquetes java no exportados, puede usar metadatos además de esta propiedad para evitar que estos tipos se enlacen:

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

Se ha agregado compatibilidad con esta propiedad en .NET 8.

AndroidEnableObsoleteOverrideInheritance

Propiedad booleana que especifica si los métodos enlazados que invalidan @Deprecated los métodos de Java se marcan automáticamente como @Deprecated.

Es muy poco frecuente que necesite cambiar esta propiedad.

Se ha agregado compatibilidad con esta propiedad en .NET 8.

AndroidJavadocVerbosity

Una propiedad de estilo de enumeración con valores intellisense válidos y full que especifica cómo deben ser comentarios de documentación XML de C# "detallados" al importar documentación de Javadoc en proyectos de enlace mediante la @(JavaSourceJar) acción de compilación.

Esta propiedad se establece intellisense en de forma predeterminada.