.NET para o erro XA1044 do Android

Mensagens de exemplo

error XA1044: The MSBuild property 'RunAOTCompilation' is not compatible with the CoreCLR runtime. The build cannot continue while this property is enabled. Either remove the property or guard it with a condition: Condition="'$(UseMonoRuntime)' == 'true'"

A condição sugerida por essa mensagem só é apropriada para destinos que dão suporte a Mono. No .NET 11, $(UseMonoRuntime)=true é rejeitado com NETSDK1242; remova a propriedade exclusiva do Mono.

Issue

Esse erro indica que uma propriedade msbuild específica do Mono está definida no arquivo de projeto, mas o projeto está configurado para usar um runtime não Mono, como CoreCLR ou NativeAOT. A compilação redefine a propriedade para false para que ela não seja passada para etapas de compilação não Mono e então para com XA1044. Isto não é um aviso nem uma operação sem efeito silenciosa.

As propriedades que disparam esse erro incluem:

  • RunAOTCompilation — Habilita a compilação do Mono AOT.
  • EnableLLVM — Habilita LLVM para o compilador AOT Mono.

Solução

Remova a propriedade específica do Mono do seu arquivo de projeto ou Directory.Build.props. Mantenha-o somente em arquivos de projeto ou em condições aplicáveis exclusivamente a destinos Mono com suporte no .NET 10 e anteriores.

ReadyToRun e NativeAOT são modelos de compilação separados. Elas não são equivalentes diretas às configurações do Mono AOT.