Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Beispielnachrichten
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.
Die von dieser Nachricht vorgeschlagene Bedingung ist nur für Ziele geeignet, die Mono unterstützen. In .NET 11 $(UseMonoRuntime)=true wird mit NETSDK1242 abgelehnt; entfernen Sie stattdessen die "Mono-only"-Eigenschaft.
Issue
Dieser Fehler weist darauf hin, dass eine monospezifische MSBuild-Eigenschaft in der Projektdatei festgelegt ist, das Projekt jedoch für die Verwendung einer Nicht-Mono-Laufzeit konfiguriert ist, z. B. CoreCLR oder NativeAOT. Wenn die Eigenschaft lautet true, setzt der Build sie auf false zurück, sodass sie nicht an Nicht-Mono-Buildschritte übergeben wird, und stoppt dann mit XA1044. Dies ist weder eine Warnung noch ein stiller No-Op.
Bei CoreCLR-Anwendungen erzeugt die Einstellung von RunAOTCompilation auf false auch diesen Fehler. Die ReadyToRun-Kompilierung wird nicht deaktiviert.
Wenn Sie sie false für NativeAOT festlegen, wird dieser Fehler nicht erzeugt.
Eigenschaften, die diesen Fehler auslösen, umfassen:
-
RunAOTCompilation— Aktiviert die Mono AOT-Kompilierung. -
EnableLLVM— Aktiviert LLVM für den Mono AOT-Compiler.
Lösung
Entfernen Sie die Mono-spezifische Eigenschaft aus der Projektdatei oder Directory.Build.props. Behalten Sie dies nur in Projektdateien oder unter Bedingungen bei, die ausschließlich für unterstützte Mono-Zielplattformen unter .NET 10 oder früher gelten.
ReadyToRun und NativeAOT sind separate Kompilierungsmodelle. Sie sind kein 1:1-Ersatz für die Mono-AOT-Einstellungen.
Ab .NET 11 können Sie die ReadyToRun (R2R)-AOT-Kompilierung für CoreCLR-Anwendungen deaktivieren, indem Sie RunAOTCompilation entfernen und festlegen
PublishReadyToRun bis false stattdessen:
<PropertyGroup>
<PublishReadyToRun>false</PublishReadyToRun>
</PropertyGroup>