Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Messaggi di esempio
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'"
error XA1044: The MSBuild property 'RunAOTCompilation' is not compatible with the CoreCLR runtime. The build cannot continue while this property is set to 'false'. Remove the property. Starting with .NET 11, set 'PublishReadyToRun' to 'false' to disable ReadyToRun (R2R) AOT compilation.
La condizione suggerita da questo messaggio è appropriata solo per le destinazioni che supportano Mono. In .NET 11, $(UseMonoRuntime)=true viene rifiutato con l'errore NETSDK1242; rimuovere invece la proprietà specifica di Mono.
Issue
Questo errore indica che nel file di progetto è impostata una proprietà MSBuild specifica di Mono, ma il progetto è configurato per l'uso di un runtime non Mono, ad esempio CoreCLR o NativeAOT. Quando la proprietà è true, la compilazione la reimposta in false modo che non venga passata ai passaggi di compilazione non Mono, quindi si arresta con XA1044. Non si tratta di un avvertimento né di un no-op silenzioso.
Per le applicazioni CoreCLR, anche l'impostazione di RunAOTCompilation su false genera questo errore. Non disabilita la compilazione ReadyToRun.
Impostarlo su false per NativeAOT non genera questo errore.
Le proprietà che attivano questo errore includono:
-
RunAOTCompilation— Abilita la compilazione Mono AOT. -
EnableLLVM— Abilita LLVM per il compilatore Mono AOT.
Soluzione
Rimuovi la proprietà specifica di Mono dal file di progetto o Directory.Build.props. Conservarlo solo nei file di progetto o nelle condizioni applicabili esclusivamente alle destinazioni Mono supportate .NET 10 e precedenti.
ReadyToRun e NativeAOT sono modelli di compilazione separati. Non sono sostituti diretti delle impostazioni di Mono AOT.
A partire da .NET 11, per disabilitare la compilazione AOT ReadyToRun (R2R) per le applicazioni CoreCLR, rimuovere RunAOTCompilation e impostare
PublishReadyToRun a false invece:
<PropertyGroup>
<PublishReadyToRun>false</PublishReadyToRun>
</PropertyGroup>