Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Exemples de messages
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 condition suggérée par ce message est appropriée uniquement pour les cibles qui prennent en charge Mono. Dans .NET 11, $(UseMonoRuntime)=true est rejeté avec NETSDK1242 ; supprimez la propriété Mono uniquement à la place.
Problème
Cette erreur indique qu’une propriété MSBuild spécifique à Mono est définie dans le fichier projet, mais que le projet est configuré pour utiliser un runtime non Mono, tel que CoreCLR ou NativeAOT. Lorsque la propriété est true, la build la réinitialise à false afin qu’elle ne soit pas passée aux étapes de build non Mono, puis s’arrête avec XA1044. Il ne s’agit ni d’un avertissement ni d’une opération silencieuse sans effet.
Pour les applications CoreCLR, définir RunAOTCompilation sur false produit également cette erreur. Elle ne désactive pas la compilation ReadyToRun.
Le définir sur false pour NativeAOT ne génère pas cette erreur.
Les propriétés qui déclenchent cette erreur sont les suivantes :
-
RunAOTCompilation— Active la compilation Mono AOT. -
EnableLLVM— Active LLVM pour le compilateur Mono AOT.
Solution
Supprimez la propriété propre à Mono de votre fichier de projet ou Directory.Build.props. Conservez-la uniquement dans les fichiers projet ou dans les conditions qui s’appliquent exclusivement aux cibles Mono prises en charge pour .NET 10 et versions antérieures.
ReadyToRun et NativeAOT sont des modèles de compilation distincts. Ils ne constituent pas des équivalents directs aux paramètres Mono AOT.
À compter de .NET 11, pour désactiver la compilation AOT ReadyToRun (R2R) pour les applications CoreCLR, supprimez RunAOTCompilation et définissez
PublishReadyToRun sur false à la place :
<PropertyGroup>
<PublishReadyToRun>false</PublishReadyToRun>
</PropertyGroup>