Compartilhar via


Propriedades do MSBuild de 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 ligados que substituem @Deprecated os métodos Java são marcados automaticamente como @Deprecated.

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

Documentação
AndroidJavadocVerbosity intellisense Uma propriedade do tipo enumeração com valores válidos e que especifica quão "detalhados" os Comentários de Documentação XML C# devem ser ao importar a documentação do Javadoc em projetos de vinculação, usando a ação de build .

Documentação

InterfacesVinculadasAndroidContêmConstantes

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

InterfacesVinculadasAoAndroidContêmMétodosDeInterfaceEstáticosEDefault

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

InterfacesVinculadasAoAndroidContêmTipos

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 enumeração com valores válidos de obsolete e disable que controla se o atributo .NET [Obsolete] é adicionado à API vinculada, 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, preferir remover membros que tenham a @RestrictTo anotação ou estejam em pacotes Java não exportados, você pode usar metadados além dessa propriedade para evitar 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.

AndroidJavadocVerbosidade

Uma propriedade do tipo enumeração com valores válidos e que especifica quão "detalhados" os Comentários de Documentação XML C# devem ser ao importar a documentação do Javadoc em projetos de vinculação, usando a ação de build .

Essa propriedade é definida como intellisense por padrão.