Partilhar via


Propriedades MSBuild de projetos de vinculação

Observação

No .NET para Android tecnicamente não há distinção entre uma aplicação e um projeto de bindings, por isso estas propriedades funcionam em ambos. Na prática, é altamente recomendado criar projetos separados de aplicações e de ligações. As propriedades de build que são principalmente usadas em projetos de aplicações estão documentadas no guia de referência do MSBuild.

Construir propriedades

Propriedade Predefinição Descrição
AndroidBoundInterfacesContainConstants true Uma propriedade booleana que especifica se as constantes de ligação nas interfaces serão suportadas, ou se será usada a solução alternativa legada de criar uma IMyInterfaceConsts classe.

Documentação
AndroidBoundInterfacesContainStatic
AndDefaultInterfaceMethods
true Uma propriedade booleana que especifica se membros padrão e estáticos nas interfaces serão suportados, ou a solução alternativa legada 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 tipos aninhados em interfaces serão suportados, ou se será utilizada a solução alternativa legada de criar um tipo não aninhado como IMyInterfaceMyNestedClass.

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

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

Documentação
AndroidJavadocVerbosity intellisense Uma propriedade ao estilo enum com valores intellisense válidos e full que especifica quão "verboso" devem ser os Comentários de Documentação XML em C# ao importar documentação Javadoc dentro de projetos de binding usando a @(JavaSourceJar) ação de compilação.

Documentação

InterfacesVinculadasAndroidContêmConstantes

Uma propriedade booleana que especifica se as constantes de ligação nas interfaces serão suportadas, ou se será usada a solução alternativa legada de criar uma IMyInterfaceConsts classe.

O valor predefinido é true.

Isto só é recomendado se tentar manter a compatibilidade pública da API com uma biblioteca legada de bindings criada antes do lançamento do C# 8.

Mais detalhes

InterfacesVinculadasAoAndroidContêmMétodosDeInterfaceEstáticosEDefault

Uma propriedade booleana que especifica se os membros padrão e estáticos nas interfaces serão suportados, ou se será utilizada a solução alternativa legada de criar uma classe irmã que contenha membros estáticos como abstract class MyInterface.

O valor predefinido é true.

Isto só é recomendado se tentar manter a compatibilidade pública da API com uma biblioteca legada de bindings criada antes do lançamento do C# 8.

Mais detalhes

AndroidBoundInterfacesContainTypes

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

O valor predefinido é true.

Isto só é recomendado se tentar manter a compatibilidade pública da API com uma biblioteca legada de bindings criada antes do lançamento do C# 8.

Mais detalhes

AndroidEnableRestrictToAttributes

Uma propriedade ao estilo enum com valores válidos de obsolete e disable que controla se o atributo .NET [Obsolete] é adicionado a uma API limitada marcada com @RestrictTo numa biblioteca Java.

Esta propriedade está definida por defeito para obsolete.

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

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

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

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

Adicionar [Obsolete] atributos em vez de remover automaticamente a API foi feito para preservar a compatibilidade da API com pacotes existentes. Caso prefira remover membros que tenham a @RestrictTo anotação ou que estejam em pacotes Java não exportados, pode usar metadados além de esta propriedade para evitar que estes tipos sejam associados:

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

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

AndroidEnableSubstituiçãoObsoletaDeHerança

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

É extremamente raro precisar alterar esta propriedade.

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

AndroidJavadocVerbosity

Uma propriedade ao estilo enum com valores válidos de intellisense e full, que especifica quão "verbosos" devem ser os Comentários de Documentação XML em C# ao importar documentação Javadoc dentro de projetos de ligação usando a ação de compilação @(JavaSourceJar).

Esta propriedade está definida por defeito para intellisense.