.NET for Android の警告 XA1040

メッセージの例

warning XA1040: The NativeAOT runtime on Android is an experimental feature and not yet suitable for production use. File issues at: https://github.com/dotnet/android/issues

問題点

NativeAOT は、Android 用 .NET の実験用ランタイム オプションです。 サポートされている発行または最適化されたビルドの $(PublishAot)=true を使用して NativeAOT を有効にすると、この警告が出力され、NativeAOT がまだ運用環境での使用に適していないことを示します。

サポートされているランタイムは次のとおりです。

  • CoreCLR (.NET 11 以降の Android アプリケーションの既定値)
  • MonoVM。.NET 10 以前の既定値であり、サポートされているターゲットでのみ$(UseMonoRuntime)=trueを介して使用できます
  • NativeAOT は、$(PublishAot)=true によって、サポート対象の発行ビルドまたは最適化ビルドとして選択されたものです

.NET 11 以降では、$(UseMonoRuntime)=trueは NETSDK1242 で拒否されます。CoreCLR からのエスケープ ハッチではありません。

ソリューション

この警告を無音にするには、次のいずれかを実行します。

  • サポートされているランタイムを使用するには、プロジェクト ファイルから $(PublishAot)=true を削除します。

  • $(EnablePreviewFeatures)をプロジェクト ファイルでtrueに設定して、NativeAOT の実験的な性質を確認します。