How to run .NET Core console application from the command line

Solution 1:

If it's a framework-dependent application (the default), you run it by dotnet yourapp.dll.

If it's a self-contained application, you run it using yourapp.exe on Windows and ./yourapp on Unix.

For more information about the differences between the two app types, see the .NET Core Application Deployment article on .NET documentation.

Solution 2:

You can very easily create an EXE (for Windows) without using any cryptic build commands. You can do it right in Visual Studio.

  1. Right click the Console App Project and select Publish.
  2. A new page will open up (screen shot below)
  3. Hit Configure...
  4. Then change Deployment Mode to Self-contained or Framework dependent. .NET Core 3.0 introduces a Single file deployment which is a single executable.
  5. Use "framework dependent" if you know the target machine has a .NET Core runtime as it will produce fewer files to install.
  6. If you now view the bin folder in explorer, you will find the .exe file.
  7. You will have to deploy the exe along with any supporting config and dll files.

Console App Publish

Solution 3:

You can also run your application like any other console applications, but only after the publish.

Let's suppose you have the simple console application named MyTestConsoleApp.

Open the package manager console and run the following command:

dotnet publish -c Debug -r win10-x64 

The -c flag mean that you want to use the debug configuration (in other case you should use Release value)

The -r flag means that your application will be run on the Windows platform with an x64 architecture.

When the publish procedure will be finished you will see the *.exe file located in your bin/Debug/publish directory.

Now you can call it via command-line tools. So open the CMD window (or terminal) move to the directory where your *.exe file is located and write the next command:

>> MyTestConsoleApp.exe argument-list

For example:

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

Solution 4:

With .NET Core 3.0 you can package the entire solution into a single-file executable using the PublishSingleFile property:

-p:PublishSingleFile=True

Source: Single-file executables

An example of a self-contained, release OS X executable:

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

An example of a self-contained, debug Linux 64-bit executable:

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

The Linux build is independent of distribution and I have found them working on Ubuntu 18.10 (Cosmic Cuttlefish), CentOS 7.7, and Amazon Linux 2.

A self-contained executable includes the .NET runtime and runtime does not require to be installed on a target machine. The published executables are saved under:

<ProjectDir>/bin/<Release or Debug>/netcoreapp3.0/<target-os>/publish/ on Linux, OS X and

<ProjectDir>\bin\<Release or Debug>\netcoreapp3.0\<target-os>\publish\ on Windows.