コマンドラインからNetアプリを発行する

C#

0. はじめに

Visual Studioで.Net Coreアプリを開発した際、コマンドラインからWindows・Linuxアプリを発行する必要があったので、方法についてまとめてみました。

1. dotnet publishコマンド

dotnet publishコマンドを使うことで、色々なオプションを指定して各アプリの発行ができます。 以下、オプションの指定方法について記載します。 ※なお、私が必要としたオプションのみ記載しています。その他のオプションを確認したい場合はdotnet publishを参照ください。

dotnet publish
    [<PROJECT>|<SOLUTION>] ・・・1-1. ビルド対象
    [-c|--configuration <CONFIGURATION>]・・・1-2. ビルド構成
    [-o|--output <OUTPUT_DIRECTORY>]・・・1-3. 出力ディレクトリのパス
    [-r|--runtime <RUNTIME_IDENTIFIER>]・・・1-4. ランタイム
    [--self-contained [true|false]]・・・1-5. 自己完結型か

1-1. ビルド対象

ビルド対象となるプロジェクト、又はソリューションのパスを指定します。 指定しない場合はカレントディレクトリが対象となります。

1-2. ビルド構成

ビルド構成を指定します。指定しない場合はDebugとなります。

設定値 説明
Debug(既定値) Debugビルド
Release Releaseビルド

1-3. 出力ディレクトリのパス

アプリケーションを出力するディレクトリのパスを指定します。 指定しない場合は以下のディレクトリに出力されます。

  • フレームワーク依存・・・[project_file_folder]/bin/[configuration]/[framework]/publish/
  • 自己完結型・・・[project_file_folder]/bin/[configuration]/[framework]/[runtime]/publish/

1-4. ランタイム

発行対象とするアプリケーションのランタイムIDを指定します。 ※以下は一部のみ記載しています。指定可能なランタイムID(RID)の一覧については、RIDカタログを参照ください。

設定値 説明
win-x64 Windows(64ビット)
win-x86 Windows(32ビット)
linux-x64 CentOS、Debian、Fedora、Ubuntuなどのディストリビューション

1-5. 自己完結型か

自己完結型で発行するか、フレームワーク依存で発行するかを指定します。指定しない場合は自己完結型となります。

設定値 説明
true(既定値) 自己完結型
false フレームワーク依存

2. 使用例

  • 自己完結型でlinux-x64アプリを発行する
dotnet publish .\hoge.csproj -c Release -o C:\output -r linux-x64 --self-contained true