single-file appの手軽さ

実行ファイルやDLLが単一ファイルが一つにできるよ

docs.microsoft.com

と説明があったので、試してみました。

dllとかたくさんファイルがあってその中「***.exe」を実行して、と説明する手間が省けるので個人的には使えるシーンはあるのかな、と思ってます。

Visual Studio 2019の手順

Visual Studio 2019 でConsoleアプリ(.net core 5利用)を作成しました。(Hello,Worldしかない状態)

ソリューションエクスプローラーからプロジェクトを右クリックし、発行を選択します。

f:id:akky97:20201125182504p:plain

今回はローカルに保存するので「フォルダー」を選択します。

f:id:akky97:20201125182756p:plain

ローカルターゲットを聞かれるのでここでも「フォルダー」を選択します。

f:id:akky97:20201125182842p:plain

出力先フォルダを決めて完了します。

f:id:akky97:20201125183120p:plain

「編集」ボタンをクリックします。

f:id:akky97:20201125183811p:plain

配置モードを「自己完結」を選択します。

f:id:akky97:20201125183932p:plain

「自己完結」を選択するとファイルの公開オプションという項目が出てきますので、この中の「単一ファイルの作成」にチェックします。

f:id:akky97:20201125184052p:plain

「発行」を押して実行ファイルを作成します。

f:id:akky97:20201125184430p:plain

出力結果を確認してみると...JITなどのDLLも一緒に出てくるんですね。未使用のアセンブリをトリミングする、とした結果、40MBあった実行ファイルは10MBになりました。

f:id:akky97:20201125184608p:plain

と思って下記を見てみたら、オプションでこのDLLも内包できるようでした。このオプションはVisual Studioのどこの設定になるのだろう...

github.com

ちなみにターゲットランタイムを「linux-x64」にすることでlinux向けにsingle-appsができました。こちらは文字通りシングルですね。

f:id:akky97:20201125190802p:plain