EXEを出力するための.NETCoreコンソールアプリケーションをビルドします
Build Net Core Console Application Output An Exe
解決:
デバッグの目的で、DLLファイルを使用できます。あなたはそれを使用して実行することができますdotnetConsoleApp2.dll。 EXEファイルを生成する場合は、自己完結型のアプリケーションを生成する必要があります。
自己完結型アプリケーション(WindowsではEXE)を生成するには、ターゲットランタイム(ターゲットとするオペレーティングシステムに固有)を指定する必要があります。
Pre-.NET Core2.0のみ :最初に、ターゲットランタイムのランタイム識別子を.csprojファイル(サポートされているRIDのリスト)に追加します。
win10-x64; ubuntu.16.10-x64 .NET Core 2.0以降、上記の手順は不要になりました 。
次に、アプリケーションを公開するときに目的のランタイムを設定します。
dotnet publish-cリリース-rwin10-x64 dotnet publish-cリリース-rubuntu.16.10-x64
.NET 5のアップデート!
以下は、.NET5が正式にリリースされた2020年11月以降に適用されます。
(ハウツーだけでなく、以下の簡単な用語のセクションを参照してください)
ハウツー(CLI)
前提条件
- .net 5SDKの最新バージョンをダウンロードします。リンク
ステップ
- ターミナル(例:bash、コマンドプロンプト、powershell)を開き、.csprojファイルと同じディレクトリに次のコマンドを入力します。
dotnet publish --output '{any directory}' --runtime {runtime} --configuration Debug -p:PublishSingleFile = true -p:PublishTrimmed = false --self-contained true例:
dotnet publish --output'c:/ temp / myapp '--runtime win-x64 --configuration Release -p:PublishSingleFile = true -p:PublishTrimmed = true --self-contained trueハウツー(GUI)
前提条件
- 2020年11月より前に読んだ場合:最新バージョンのVisual Studio Preview *
- NOV2020 +を読んでいる場合:最新バージョンのVisual Studio *
*上記の2つの場合、最新の.net5SDKがPCに自動的にインストールされます。
ステップ
[プロジェクト]を右クリックし、[公開]をクリックします
[スタート]をクリックして[フォルダターゲット]を選択し、[次へ]をクリックして[フォルダ]を選択します
任意のフォルダの場所を入力し、[完了]をクリックします
[編集]をクリックします
ターゲットランタイムを選択し、[単一ファイルの作成]にチェックマークを付けて保存します。*
[公開]をクリックします
アプリを公開した場所でターミナルを開き、.exeを実行します。例:
少しの用語
ターゲットランタイム
RIDのリストを参照してください
展開モード
- フレームワーク依存とは、小さな.exeファイルが生成されたが、アプリは.Net5がホストマシンにインストールされていることを前提としています。
- 自己完結型とは、.exeにフレームワークが含まれているため、より大きな.exeファイルを意味しますが、.Net 5をプリインストールする必要がなく、どのマシンでも.exeを実行できます。注:自己完結型を使用する場合、.EXEだけでなく、追加の依存関係(.dll)が生成されます
ReadyToRunコンパイルを有効にする
TLDR:.Net5のAhead of Timeコンパイル(AOT)に相当します。ネイティブコードにプリコンパイルされているため、アプリは通常、起動が速くなります。多くの要因に応じて、アプリのパフォーマンスが向上します(またはそうではありません!)。詳細はこちら
未使用のアセンブリをトリミングする
trueに設定すると、dotnetは非常にスリムで小さな.exeを生成し、必要なものだけを含めます。ここでは注意してください。例:アプリでリフレクションを使用する場合、このフラグをtrueに設定したくない可能性があります。
Microsoft Doc
前の投稿
更新(2019年10月31日)
GUIを介してこれを実行したい人のために:
- Visual Studio2019を使用しています
- .NET Core 3.0がインストールされています(Visual Studio 2019の最新バージョンに含まれています)
- を生成したい 単一ファイル
ノート
このような小さなアプリケーションのファイルサイズが大きいことに注意してください
'PublishTrimmed'プロパティを追加できます。アプリケーションには、アプリケーションで使用されるコンポーネントのみが含まれます。 注意 :リフレクションを使用している場合はこれを行わないでください
再度公開する
以下は、出力ディレクトリに、を生成します。
- すべてのパッケージリファレンス
- 出力アセンブリ
- ブートストラップexe
ただし、すべての.NETCoreランタイムアセンブリが含まれているわけではありません。
$(SolutionDir) packages ここでサンプルにまとめました: https://github.com/SimonCropp/NetCoreConsole