Propriedades do MSBuild para projetos de vinculação

Observação

No .NET para Android, tecnicamente não há distinção entre um aplicativo e um projeto de associações, portanto, essas propriedades funcionarão em ambos. Na prática, é altamente recomendável criar projetos separados de aplicativos e associações. As propriedades de compilação usadas principalmente em projetos de aplicativos estão documentadas no guia de referência de propriedades do MSBuild.

Compilar propriedades

Propriedade Padrão Descrição
AndroidBoundInterfacesContainConstants true Uma propriedade booleana que especifica se as constantes de associação em interfaces terão suporte ou se a solução alternativa herdada de criar uma IMyInterfaceConsts classe será usada.

Documentação
AndroidBoundInterfacesContainStatic
AndDefaultInterfaceMethods
true Uma propriedade booleana que especifica se os membros padrão e estáticos nas interfaces terão suporte ou se a solução alternativa herdada de criar uma classe irmã contendo membros estáticos como abstract class MyInterface será usada.

Documentação
AndroidBoundInterfacesContainTypes true Uma propriedade booleana que especifica se os tipos aninhados em interfaces terão suporte ou se a solução alternativa herdada de criar um tipo não aninhado como IMyInterfaceMyNestedClass será usada.

Documentação
AndroidEnableObsoleteOverrideInheritance
Adicionado no .NET 8
true Uma propriedade booleana que especifica se os métodos vinculados que substituem métodos Java @Deprecated são automaticamente marcados como @Deprecated.

Documentação
AndroidEnableRestrictToAttributes
Adicionado no .NET 8
obsolete Uma propriedade no estilo enum com valores válidos obsolete e disable que especifica se o atributo .NET [Obsolete] é adicionado à API vinculada que está marcada com @RestrictTo em uma biblioteca Java.

Documentação
AndroidJavadocVerbosity intellisense Uma propriedade no estilo enumeração com valores válidos intellisense e full que especifica o nível de detalhamento dos comentários de documentação XML C# ao importar a documentação Javadoc em projetos de vinculação usando a ação de compilação @(JavaSourceJar).

Documentação
GenerateDocumentationFile true Uma propriedade booleana que especifica se um arquivo de documentação XML do C# é gerado durante a compilação e (durante o empacotamento) incluído no pacote NuGet produzido.

Documentação

AndroidBoundInterfacesContainConstants

Uma propriedade booleana que especifica se as constantes de associação em interfaces terão suporte ou se a solução alternativa herdada de criar uma IMyInterfaceConsts classe será usada.

O valor padrão é true.

Isso só é recomendado se estiver tentando manter a compatibilidade da API pública com uma biblioteca de associações herdada criada antes do lançamento do C# 8.

Mais detalhes

AndroidBoundInterfacesContainStaticAndDefaultInterfaceMethods

Uma propriedade booleana que especifica se os membros padrão e estáticos nas interfaces terão suporte ou se a solução alternativa herdada de criar uma classe irmã contendo membros estáticos like abstract class MyInterface será usada.

O valor padrão é true.

Isso só é recomendado se estiver tentando manter a compatibilidade da API pública com uma biblioteca de associações herdada criada antes do lançamento do C# 8.

Mais detalhes

AndroidBoundInterfacesContainTypes

Uma propriedade booleana que especifica se os tipos aninhados em interfaces terão suporte ou se a solução alternativa herdada de criar um tipo não aninhado como IMyInterfaceMyNestedClass será usada.

O valor padrão é true.

Isso só é recomendado se estiver tentando manter a compatibilidade da API pública com uma biblioteca de associações herdada criada antes do lançamento do C# 8.

Mais detalhes

AndroidEnableRestrictToAttributes

Uma propriedade no estilo enum com valores válidos obsolete e disable que controla se o atributo .NET [Obsolete] é adicionado à API vinculada que está marcada com @RestrictTo em uma biblioteca Java.

Essa propriedade é definida como obsolete por padrão.

Quando definido como obsolete, os tipos e membros marcados com a anotação androidx.annotation.RestrictToJava ou em pacotes Java não exportados serão marcados com um [Obsolete] atributo na associação C#.

Esse [Obsolete] atributo tem uma mensagem descritiva explicando que o proprietário do pacote Java considera a API "interna" e adverte contra seu uso.

Esse atributo também tem um código XAOBS001 de aviso personalizado para que possa ser suprimido independentemente da API obsoleta "normal".

Quando definido como disable, a API será gerada normalmente, sem atributos adicionais. (Esse é o mesmo comportamento de antes do .NET 8.)

A adição [Obsolete] de atributos em vez de remover automaticamente a API foi feita para preservar a compatibilidade da API com os pacotes existentes. Se, em vez disso, você preferir remover membros que possuem a anotação @RestrictToou estão em pacotes Java não exportados, você pode usar metadata além desta propriedade para impedir que esses tipos sejam vinculados:

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

O suporte para essa propriedade foi adicionado no .NET 8.

AndroidEnableObsoleteOverrideInheritance

Uma propriedade booleana que especifica se os métodos vinculados que substituem @Deprecated os métodos Java são automaticamente marcados como @Deprecated.

É extremamente raro precisar alterar essa propriedade.

O suporte para essa propriedade foi adicionado no .NET 8.

GenerateDocumentationFile

Uma propriedade booliana que especifica se um arquivo de documentação XML do C# é gerado e incluído ao empacotar o projeto de associação.

A geração de documentação XML é habilitada por padrão para projetos de associação. Defina esta propriedade como false para desativar a geração da documentação XML.

AndroidJavadocVerbosidade

Uma propriedade no estilo enumeração com valores válidos intellisense e full que especifica o nível de detalhamento dos comentários de documentação XML C# ao importar a documentação Javadoc em projetos de vinculação usando a ação de compilação @(JavaSourceJar).

Essa propriedade é definida como intellisense por padrão.