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
using System;
using System.Threading;
namespace SingleFileConsole
{
class Program
{
static void Main(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
を実行する - 実行ファイルが発行されていることを確認する(画像参照)
3. アプリケーションを実行する
- Windows 10で開発したアプリケーションを、Ubuntu 18.04にコピー
- ターミナルを立ち上げて、アプリケーションを配置したディレクトリまで移動
-
chmod +x SingleFileConsole
でアプリケーションを実行可能形式にする -
./SingleFileConsole
でアプリケーションを実行する