コマンドラインから.NET Coreコンソールアプリを実行する方法


回答:


273

フレームワークに依存するアプリケーション(デフォルト)の場合は、で実行しdotnet yourapp.dllます。

自己完結型のアプリケーションの場合はyourapp.exe、Windowsと./yourappUnix を使用して実行します。

2つのアプリタイプの違いの詳細については、.Net Docsの.NET Core Application Deploymentの記事を参照してください。


22
これを見つけるのにどれだけ時間がかかったのか、驚くべきことです。私はあらゆる種類の「ドットネット実行」コマンドなどを試しています。これは、コンソールアプリケーションを実行するための正しいドットネット使用法を提供する多くの検索で最初に遭遇した場所です。マイクロソフトはなぜ.NET Coreを開発者にとって使いにくいものにしたのですか?
グレントーマス

2
@GlenThomas開発中のアプリケーションを実行する場合は、を使用しますdotnet run。また、どこを見ましたか?この情報はどこにありますか?
スビック2017年

1
「dotnet run」は、古いproject.jsonファイルではなく、新しいMSBuild csprojセットアップを使用する.NETコアプロジェクトには当てはまらないようです。
グレントーマス

1
@GlenThomasそうではありませんdotnet run。新しいcsprojプロジェクトでも、project.jsonと同じように機能します。
2017年

5
@GlenThomas、これがあなたが抱えていた問題であるかどうかはわかりませんが、を使用するときdotnet runは、ソリューションディレクトリではなくプロジェクトディレクトリにいることを確認してください。
Ryan Lundy

46

不可解なビルドコマンドを使用せずに、非常に簡単にEXE(Windows用)を作成できます。Visual Studioで直接実行できます。

  1. コンソールアプリプロジェクトを右クリックし、[ 発行 ]を選択します。
  2. 新しいページが開きます(下のスクリーンショット)
  3. ヒットの設定を...
  4. 次に、展開モード自己完結型またはフレームワーク依存型に変更します。 .NET Core 3.0では、単一の実行可能ファイルである単一ファイルのデプロイメントが導入されています。
  5. インストールするファイルが少なくなるため、ターゲットマシンに.NET Coreランタイムがあることがわかっている場合は、「フレームワーク依存」を使用します。
  6. エクスプローラーでbinフォルダーを表示すると、.exeファイルが見つかります。
  7. exeファイルは、サポートされている構成ファイルとdllファイルと共に展開する必要があります。

コンソールアプリの公開


5
うん。EXEがあります-217の他のファイル(api-ms-win-core-namedpipe-l1-1-0.dllなど)とともに。これを1つのEXEにバンドルする方法はありますか?
Elton

1
良い質問@Elton。わかりません。私の知る限り、すべてのdllをデプロイする必要があります。
Jess

2
それが自己完結型に構成されているという事実は、それらのDLLのすべてがそこにあることを必要とすると思います。そこに配置したくない場合は、展開モードをフレームワーク依存にする必要があります
kippermand

1
あなたは私の金曜日を作りました!
ロビンジョンソン

20

他のコンソールアプリケーションと同じようにアプリを実行することもできますが、公開後のみです。

MyTestConsoleAppという名前のシンプルなコンソールアプリがあるとします。パッケージマネージャーコンソールを開き、次のコマンドを実行します。

dotnet publish -c Debug -r win10-x64 

-cフラグは、デバッグ構成を使用することを意味します(他の場合はリリース値を使用する必要があります)-rフラグは、アプリケーションがx64アーキテクチャーのWindowsプラットフォームで実行されることを意味します。

公開手順が完了すると、bin / Debug / publishディレクトリにある* .exeファイルが表示されます。

これで、コマンドラインツールを使用して呼び出すことができます。CMDウィンドウ(またはターミナル)を開き、*。exeファイルがあるディレクトリに移動して、次のコマンドを記述します。

>> MyTestConsoleApp.exe argument-list

例えば:

>> MyTestConsoleApp.exe --input some_text -r true

2

dotnetcore3.0では、PublishSingleFileプロパティを使用してソリューション全体を単一ファイルの実行可能ファイルにパッケージ化できます

-p:PublishSingleFile=True

ソースの単一ファイル実行可能ファイル

Self ContainedReleaseOSXの実行可能ファイル:

dotnet publish -c Release -r osx-x64 -p:PublishSingleFile=True --self-contained True

例としてSelf ContainedDebugLinuxが実行可能な64ビット:

dotnet publish -c Debug -r linux-x64 -p:PublishSingleFile=True --self-contained True

Linuxビルドはディストリビューションに依存せず、Ubuntu 18.10、CentOS 7.7、Amazon Linux 2で動作することがわかりました。

自己完結型の実行可能ファイルにはDotnetランタイムが含まれており、ランタイムをターゲットマシンにインストールする必要はありません。公開された実行可能ファイルは次の場所に保存されます。

<ProjectDir>/bin/<Release or Debug>/netcoreapp3.0/<target-os>/publish/ Linux、OSXおよび

<ProjectDir>\bin\<Release or Debug>\netcoreapp3.0\<target-os>\publish\ Windowsの場合。


また、csprojファイルに設定を追加することができます<PublishSingleFile>true</PublishSingleFile>
マフディAtaollahi

0

.netコアSDKがマシンにインストールされている場合、CMDを使用してコンソール.netコアプロジェクトを実行できます。

Windowsコマンドラインを使用してコンソールプロジェクトを実行するには、ディレクトリから特定のパスを選択し、以下のコマンドを入力します

dotnet run


0

cmdプロンプトで実行する前に、「appsettings.json」が「appsettings.Development.json」と同じ値であることを確認してください。

コマンドプロンプトで、bin / debug / netcoreapp2.0フォルダーに移動します。次に「dotnet applicationname.dll」を実行します

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.