備忘録

備忘録

.NET Core で 実行ファイル(exe)を作成する方法

2024/01/22 追記

FDDは未知の原因不明なエラーが発生する場合があります。
何か特別な理由が無い限りはSCDを推奨します。

Ⅰ. はじめに

この記事の内容は.NET Core 3.0までの内容です。

最新の情報は以下Webページを確認して下さい。
https://docs.microsoft.com/ja-jp/dotnet/core/tools/dotnet-publish

Ⅱ. FDD と SCD の違いについて

デプロイ方法の名称 略称 実行方法(.NET Core 2.0) 実行方法
(.NET Core 3.0)
Framework-dependent deployments
フレームワークに依存する展開
FDD コマンドを実行する
dotnet hoge.dll
EXEを実行する
Self-contained deployments
自己完結型の展開
SCD EXEを実行する EXEを実行する

SCD は CoreCLR と呼ばれる .NET Core のランタイムも出力する為、.NET Core ランタイムが入っていない環境でも実行することができます。

.NET Core 3.0 以上の場合

標準でフレームワーク依存(FDD)のexeファイルが出力されます。

.NET Core 2.x 以下の場合

FDD では実行ファイル(.exe)の作成ができません。
SCD で実行ファイル(.exe) を作成します。

Ⅲ. FDD のやり方

以下のコマンドを実行する
dotnet publish -c Release

以上

Ⅳ. SCDのやり方

1. 以下のコマンドを実行する

RID(Runtime Identifier) と呼ばれる値はこちらからコピペします。
https://docs.microsoft.com/en-us/dotnet/articles/core/rid-catalog

dotnet publish -c Release -r win-x64
# dotnet publish -c Release -r osx-x64
# dotnet publish -c Release -r linux-x64
2. 実行ファイルが作成される


その他

※2018/12/11 追記
.NET Coreで実行ファイル1つだけを出力する方法(Warpを利用する場合)(非推奨)
https://kagasu.hatenablog.com/entry/2018/12/11/021919

※2019/05/08 追記
.NET Coreで実行ファイル1つだけを出力する方法
https://kagasu.hatenablog.com/entry/2019/05/08/022255

※2019/01/04追記
.NET CoreをCoreRTを利用してビルドする方法
https://kagasu.hatenablog.com/entry/2019/01/04/121434