Publish Single Fileとself-containedを試してみたので、やったことの備忘です。
下記の記事を参考にしながら進めました。
.NET Core CLI を使用して .NET Core アプリを発行する
.NET Core 3.0のPublish Single File概要
前提
やりたいこと
- .Net Core 3.1のコンソールアプリをUbuntu 18.04で実行したい
- Ubuntu 18.04に.Net Core 3.1のRuntimeをインストールしたくない
- 管理が面倒なので、単一実行可能ファイルにしたい
環境
開発環境
- Windows 10
- Visual Studio 2019
実行環境
- Ubuntu 18.04
実装方法
1. コンソールアプリを作る
Visual Studioのテンプレートからコンソールアプリを選び、ソリューションを作成します。
動くことが確認できればいいので、1秒ごとに「Hello World!」と出力するようにProgram.csを修正しました。
Program.cs
usingSystem;usingSystem.Threading;namespaceSingleFileConsole{classProgram{staticvoidMain(string[]args){while(true){Console.WriteLine("Hello World!");Thread.Sleep(1000);}}}}2. アプリケーションを発行する
- 開発者用コマンドプロンプトを起動する
ツール(T)>コマンドライン(L)>開発者用コマンドプロンプト(C)
dotnet publish -c Release -r linux-x64 /p:PublishSingleFile=trueを実行する- 実行ファイルが発行されていることを確認する(画像参照)
![発行先.PNG]()
3. アプリケーションを実行する
- Windows 10で開発したアプリケーションを、Ubuntu 18.04にコピー
- ターミナルを立ち上げて、アプリケーションを配置したディレクトリまで移動
chmod +x SingleFileConsoleでアプリケーションを実行可能形式にする./SingleFileConsoleでアプリケーションを実行する

