まだ制限はあるが、.NET7よりC#プログラムからネイティブの実行ファイルおよびライブラリをビルドできるようになったようだ。
手順的には下記のほうが分かりやすいかもしれない
- Building a Hello World console app with NativeAOT | GitHub
- Building Native Libraries with NativeAOT | GitHub
ビルドオプションがたくさんあるようだが、ネイティブな実行ファイルが欲しいだけならPublishAot
プロパティをtrue
に設定すればよい。
dotnet publish /p:PublishAot=true -r win-x64 -c Release
これで単一のネイティブな実行ファイルが生成される。
SelfContained で SingleFile な Trim された ReadyToRun なバイナリと似たようなものな気がするが、サイズが小さく起動が速い。(たぶん)
単機能な小さいCLIをちまちま作っている身としては助かりそうである。
制限は少なくなっていくだろうし、とりあえずNativeAOTしてみて動かなかったら元に戻すくらいの運用でいくとしよう。