dotnet - Man Page

The generic driver for the .NET CLI.

Examples (TL;DR)

dotnet command

This article applies to: ✔️ .NET Core 3.1 SDK and later versions


To get information about the available commands and the environment:

dotnet [--version] [--info] [--list-runtimes] [--list-sdks]

dotnet -h|--help

To run a command (requires SDK installation):

dotnet <COMMAND> [-d|--diagnostics] [-h|--help] [--verbosity <LEVEL>]
    [command-options] [arguments]

To run an application:

dotnet [--additionalprobingpath <PATH>] [--additional-deps <PATH>]
    [--fx-version <VERSION>]  [--roll-forward <SETTING>]
    <PATH_TO_APPLICATION> [arguments]

dotnet exec [--additionalprobingpath] [--additional-deps <PATH>]
    [--depsfile <PATH>]
    [--fx-version <VERSION>]  [--roll-forward <SETTING>]
    [--runtimeconfig <PATH>]
    <PATH_TO_APPLICATION> [arguments]


The dotnet command has two functions:


Different options are available for:

Options for displaying environment information and available commands

The following options are available when dotnet is used by itself, without specifying a command or an application to run. For example, dotnet --info or dotnet --version. They print out information about the environment.

  • --info

    Prints out detailed information about a .NET installation and the machine environment, such as the current operating system, and commit SHA of the .NET version.

  • --version

Prints out the version of the .NET SDK used by dotnet commands, which may be affected by a global.json file. Available only when the SDK is installed.

  • --list-runtimes

    Prints out a list of the installed .NET runtimes. An x86 version of the SDK lists only x86 runtimes, and an x64 version of the SDK lists only x64 runtimes.

  • --list-sdks

    Prints out a list of the installed .NET SDKs.

  • -?|-h|--help

    Prints out a list of available commands.

Options for running a command

The following options are for dotnet with a command. For example, dotnet build --help or dotnet build --verbosity diagnostic.

  • -d|--diagnostics

    Enables diagnostic output.

  • -v|--verbosity <LEVEL>

    Sets the verbosity level of the command. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. Not supported in every command. See specific command page to determine if this option is available.

  • -?|-h|--help

    Prints out documentation for a given command. For example, dotnet build --help displays help for the build command.

  • command options

    Each command defines options specific to that command. See specific command page for a list of available options.

Options for running an application

The following options are available when dotnet runs an application. For example, dotnet --roll-forward Major myapp.dll.

  • --additionalprobingpath <PATH>

    Path containing probing policy and assemblies to probe. Repeat the option to specify multiple paths.

  • --additional-deps <PATH>

    Path to an additional .deps.json file. A deps.json file contains a list of dependencies, compilation dependencies, and version information used to address assembly conflicts. For more information, see Runtime Configuration Files ( on GitHub.

  • --roll-forward <SETTING>

    Controls how roll forward is applied to the app. The SETTING can be one of the following values. If not specified, Minor is the default.

    • LatestPatch - Roll forward to the highest patch version. This disables minor version roll forward.
    • Minor - Roll forward to the lowest higher minor version, if requested minor version is missing. If the requested minor version is present, then the LatestPatch policy is used.
    • Major - Roll forward to lowest higher major version, and lowest minor version, if requested major version is missing. If the requested major version is present, then the Minor policy is used.
    • LatestMinor - Roll forward to highest minor version, even if requested minor version is present. Intended for component hosting scenarios.
    • LatestMajor - Roll forward to highest major and highest minor version, even if requested major is present. Intended for component hosting scenarios.
    • Disable - Don’t roll forward. Only bind to specified version. This policy isn’t recommended for general use because it disables the ability to roll forward to the latest patches. This value is only recommended for testing.

    With the exception of Disable, all settings will use the highest available patch version.

    Roll forward behavior can also be configured in a project file property, a runtime configuration file property, and an environment variable. For more information, see Major-version runtime roll forward.

  • --fx-version <VERSION>

    Version of the .NET runtime to use to run the application.

    This option overrides the version of the first framework reference in the application’s .runtimeconfig.json file. This means it only works as expected if there’s just one framework reference. If the application has more than one framework reference, using this option may cause errors.

Options for running an application with the exec command

The following options are available only when dotnet runs an application by using the exec command. For example, dotnet exec --runtimeconfig myapp.runtimeconfig.json myapp.dll.

  • --depsfile <PATH>

    Path to a deps.json file. A deps.json file is a configuration file that contains information about dependencies necessary to run the application. This file is generated by the .NET SDK.

  • --runtimeconfig <PATH>

    Path to a runtimeconfig.json file. A runtimeconfig.json file contains run-time settings and is typically named <applicationname>.runtimeconfig.json. For more information, see .NET runtime configuration settings.

dotnet commands


dotnet buildBuilds a .NET application.
dotnet build-serverInteracts with servers started by a build.
dotnet cleanClean build outputs.
dotnet execRuns a .NET application.
dotnet helpShows more detailed documentation online for the command.
dotnet migrateMigrates a valid Preview 2 project to a .NET Core SDK 1.0 project.
dotnet msbuildProvides access to the MSBuild command line.
dotnet newInitializes a C# or F# project for a given template.
dotnet packCreates a NuGet package of your code.
dotnet publishPublishes a .NET framework-dependent or self-contained application.
dotnet restoreRestores the dependencies for a given application.
dotnet runRuns the application from source.
dotnet sdk checkShows up-to-date status of installed SDK and Runtime versions.
dotnet slnOptions to add, remove, and list projects in a solution file.
dotnet storeStores assemblies in the runtime package store.
dotnet testRuns tests using a test runner.

Project references

dotnet add referenceAdds a project reference.
dotnet list referenceLists project references.
dotnet remove referenceRemoves a project reference.

NuGet packages

dotnet add packageAdds a NuGet package.
dotnet remove packageRemoves a NuGet package.

NuGet commands

dotnet nuget deleteDeletes or unlists a package from the server.
dotnet nuget pushPushes a package to the server and publishes it.
dotnet nuget localsClears or lists local NuGet resources such as http-request cache, temporary cache, or machine-wide global packages folder.
dotnet nuget add sourceAdds a NuGet source.
dotnet nuget disable sourceDisables a NuGet source.
dotnet nuget enable sourceEnables a NuGet source.
dotnet nuget list sourceLists all configured NuGet sources.
dotnet nuget remove sourceRemoves a NuGet source.
dotnet nuget update sourceUpdates a NuGet source.

Workload commands

dotnet workload installInstalls an optional workload.
dotnet workload listLists all installed workloads.
dotnet workload repairRepairs all installed workloads.
dotnet workload searchList selected workloads or all available workloads.
dotnet workload uninstallUninstalls a workload.
dotnet workload updateReinstalls all installed workloads.

Global, tool-path, and local tools commands

Tools are console applications that are installed from NuGet packages and are invoked from the command prompt. You can write tools yourself or install tools written by third parties. Tools are also known as global tools, tool-path tools, and local tools. For more information, see .NET tools overview.

dotnet tool installInstalls a tool on your machine.
dotnet tool listLists all global, tool-path, or local tools currently installed on your machine.
dotnet tool searchSearches for tools that have the specified search term in their name or metadata.
dotnet tool uninstallUninstalls a tool from your machine.
dotnet tool updateUpdates a tool that is installed on your machine.

Additional tools

The following additional tools are available as part of the .NET SDK:

dev-certsCreates and manages development certificates.
efEntity Framework Core command-line tools.
user-secretsManages development user secrets.
watchA file watcher that restarts or hot reloads an application when it detects changes in the source code.

For more information about each tool, type dotnet <tool-name> --help.


Create a new .NET console application:

dotnet new console

Build a project and its dependencies in a given directory:

dotnet build

Run an application:

dotnet exec myapp.dll
dotnet myapp.dll

See Also


2023-10-25 .NET Documentation