Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Przykładowe komunikaty
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.
Warunek wskazywany przez ten komunikat jest odpowiedni wyłącznie dla obiektów docelowych, które obsługują Mono. W .NET 11 $(UseMonoRuntime)=true zostanie odrzucony z NETSDK1242; zamiast tego usuń właściwość Tylko mono.
Issue
Ten błąd wskazuje, że właściwość MSBuild specyficzna dla mono jest ustawiona w pliku projektu, ale projekt jest skonfigurowany do używania środowiska uruchomieniowego innego niż Mono, takiego jak CoreCLR lub NativeAOT. Gdy właściwość ma wartość true, kompilacja resetuje ją do false, aby nie została przekazana do kroków kompilacji innych niż Mono, a następnie zatrzymuje się z XA1044. Nie jest to ostrzeżenie ani dyskretne no-op.
W przypadku aplikacji CoreCLR ustawienie RunAOTCompilation na false również powoduje ten błąd. Nie wyłącza kompilacji ReadyToRun.
Ustawienie tej wartości na false dla NativeAOT nie powoduje wystąpienia tego błędu.
Właściwości wyzwalające ten błąd obejmują:
-
RunAOTCompilation— włącza kompilację mono AOT. -
EnableLLVM— Włącza obsługę LLVM dla kompilatora Mono AOT.
Rozwiązanie
Usuń właściwość specyficzną dla Mono z pliku projektu lub Directory.Build.props. Zachowaj go tylko w plikach lub warunkach projektu, które mają zastosowanie wyłącznie do obsługiwanych .NET 10 i wcześniejszych elementów docelowych Mono.
ReadyToRun i NativeAOT to oddzielne modele kompilacji. Nie są one odpowiednikami jeden do jednego dla ustawień Mono AOT.
Począwszy od .NET 11, aby wyłączyć kompilację AOT ReadyToRun (R2R) dla aplikacji CoreCLR, usuń RunAOTCompilation i ustaw
PublishReadyToRun do false zamiast tego:
<PropertyGroup>
<PublishReadyToRun>false</PublishReadyToRun>
</PropertyGroup>