情報源: Making a tiny .NET Core 3.0 entirely self-contained single executable – Scott Hanselman
.NET Core 2.2より、EXEファイルの作成が可能になりましたが、SCD(Self Contained Derivery)を選択してEXEを作成した場合、現状はEXE本体だけではなく必要の有無に限らず大量のライブラリファイル等々が一つフォルダにぶん投げられてしまい、実行時最低でも集住あるファイルを同時に移動させる必要があります。仮にそれがコンソールに「Hello World!」と表示するだけだったとしても。
.NET Core 3.0では、これををできるだけ小さなEXEファイル一つにするようプロジェクトが進められていて、この記事はその作業の進捗確認のような感じになっています。現状のPreview 6はdotonet publishコマンド実行時に、アセンブリの依存関係を厳密に調べて、必要なライブラリだけをデプロイフォルダに移動し調整を行う事が実現され、将来のアップデートは、EXE本体を含め、ランタイム、各ライブラリも事前にILが最適化された状態で実行バイナリ化され、1つのEXEにまとめるようになるようです。最新の開発状況では、コンソールに「Hello World!」を表示するアプリケーションで二十数MBの大きさのEXEとなるようです。
早くリリースして欲しいですね!
コメント