.NET för Android-fel XA1044

Exempelmeddelanden

error XA1044: The MSBuild property 'RunAOTCompilation' is not compatible with the CoreCLR runtime. The build cannot continue while this property is enabled.

Problematik

Det här felet anger att en monospecifik MSBuild-egenskap har angetts i projektfilen, men projektet är konfigurerat för att använda en icke-Mono-körning (till exempel CoreCLR eller NativeAOT). Bygget kan inte fortsätta så länge egenskapen är aktiverad.

Egenskaper som utlöser det här felet är:

  • RunAOTCompilation — Mono AOT-kompilering. CoreCLR använder PublishReadyToRun i stället.
  • EnableLLVM — Aktiverar LLVM för Mono AOT-kompilatorn.

Villkoret UseMonoRuntime nedan är endast giltigt för .NET 10- och tidigare Mono-mål som stöds. I .NET 11 och senare avvisas inställningen UseMonoRuntime=true med NETSDK1242.

Lösning

Ta bort den monospecifika egenskapen från projektfilen eller Directory.Build.props, eller skydda den med ett körningsvillkor:

<PropertyGroup Condition=" '$(UseMonoRuntime)' == 'true' ">
  <RunAOTCompilation>true</RunAOTCompilation>
</PropertyGroup>

För CoreCLR använder du PublishReadyToRun i stället för RunAOTCompilation:

<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
  <PublishReadyToRun>true</PublishReadyToRun>
</PropertyGroup>