This article applies to: ✔️ .NET Core 3.1 SDK and later versions
The .NET command-line interface (CLI) is a cross-platform toolchain for developing, building, running, and publishing .NET applications.
The .NET CLI is included with the .NET SDK. For more information about how to install the .NET SDK, see Install .NET. After installing the SDK, you can run CLI commands by opening a terminal and entering the commands at the terminal prompt.
Command structure
CLI command structure consists of the driver ("dotnet"), the command, and possibly command arguments and options. You see this pattern in most CLI operations, such as creating a new console app, and running it from the command line. The following commands show when the console app was run from a directory named my_app:
The driver is named dotnet and has two responsibilities, either running a framework-dependent app or executing a command.
To run a framework-dependent app, specify the path to the app's .dll file after the driver without specifying a command, for example, dotnet /path/to/my_app.dll. When executing the command from the folder where the app's DLL resides, just execute dotnet my_app.dll. For more information, see the dotnet command.
When you supply a command to the driver, dotnet.exe starts the CLI command execution process. For example:
.NET CLI
dotnetbuild
First, the driver determines the version of the SDK to use. If there's no global.json file, the latest version of the SDK available is used. After the SDK version is determined, it executes the command.
Command
The command performs an action. For example, dotnet build builds code. dotnet publish publishes code. See the CLI commands section for a list of commands.
Arguments
The arguments you pass on the command line are the arguments to the command invoked or to options specified with the command. For example, when you execute dotnet publish my_app.csproj, the my_app.csproj argument indicates the project to publish and is passed to the publish command.
Options
The options you pass on the command line are the options to the command invoked. For example, when you execute dotnet publish --output /build_output, the --output option and its value provided by the /build_output argument are passed to the publish command.
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.
The source for this content can be found on GitHub, where you can also create and review issues and pull requests. For more information, see our contributor guide.
.NET feedback
.NET is an open source project. Select a link to provide feedback:
Build end-to-end solutions in Microsoft Azure to create Azure Functions, implement and manage web apps, develop solutions utilizing Azure storage, and more.