Generated by GPT-5-mini| dotnet CLI | |
|---|---|
| Name | dotnet CLI |
| Developer | Microsoft |
| Initial release | 2014 |
| Written in | C# |
| Operating system | Windows, Linux, macOS |
| License | MIT License |
dotnet CLI The .NET command-line interface is a cross-platform toolchain for building, running, and managing Microsoft's .NET applications that targets multiple operating systems and runtimes. It provides commands for compilation, package management, project scaffolding, and global tool execution, integrating with ecosystems such as NuGet, Visual Studio Code, GitHub, Azure and Docker. Designed for cloud-native and server-side scenarios, it aligns with practices from projects like Kubernetes, Apache Kafka, Redis and NGINX in modern application pipelines.
The CLI serves as a unified authoring surface for developers using languages that target .NET Core, .NET Framework, and modern .NET releases, enabling workflows across Windows Server, Ubuntu, Red Hat Enterprise Linux, macOS Big Sur and container images derived from Alpine Linux. It exposes subcommands to restore packages, build assemblies, run tests, publish deployments, and manage templates, interoperating with ecosystems like NuGet Package Manager, MSBuild, Roslyn and Entity Framework Core. Its design reflects influences from tooling such as Node.js, Python (programming language), Java Development Kit, and Go (programming language) CLI philosophies, supporting continuous integration systems like Jenkins, GitLab CI, Azure DevOps, and Travis CI.
Installation options include platform installers from Microsoft distributions, package managers such as Homebrew, apt (Debian), and yum (package manager), as well as containerized images used with Docker and orchestration via Kubernetes. System prerequisites often reference OpenSSL on Unix-like systems and PowerShell on Windows for scriptable setup. Developers frequently configure SDK versions using global.json files and coordinate with services such as Azure Pipelines, GitHub Actions, and CircleCI to pin toolsets during automated builds.
Primary commands expose actions comparable to traditional tools like MSBuild, NuGet and xUnit: restore, new, build, run, test, publish, pack, and tool. Subcommands integrate with project files based on MSBuild targets and use language services from Roslyn to provide compile-time diagnostics. Invocation patterns are adopted in editor integrations with Visual Studio Code, Rider (IDE), and Visual Studio for tasks such as live debugging with Windows Debugger or remote diagnostics with Azure Monitor and Application Insights.
Project templates and solution orchestration coordinate with project system files and package references used by NuGet Package Manager, enabling multi-targeting strategies to support .NET Standard, .NET Core, and .NET Framework libraries. Projects can reference tooling from ecosystems such as Entity Framework Core migrations, ASP.NET Core web apps, and Xamarin mobile libraries. Integration with source control platforms like GitHub, Bitbucket, and Azure Repos facilitates branch-based workflows and pull request automation for CI/CD pipelines managed by Travis CI, Jenkins, or Azure Pipelines.
The CLI coordinates SDK and runtime selection, managing side-by-side installations of .NET Core SDK, .NET SDK, and runtime flavors for compatibility with cloud services like Microsoft Azure App Service and container platforms such as Docker Swarm. Global tools follow a model similar to package managers like npm and pip, enabling distribution of command-line utilities across teams; examples in the ecosystem include tools maintained by vendors like JetBrains and organizations such as Canonical. Versioning and compatibility considerations reference standards and specifications from ECMA International and interoperate with native libraries like OpenSSL and libuv in some hosting scenarios.
Extensibility points include custom templates, MSBuild targets, and analyzer packages leveraging Roslyn code analysis, enabling integrations for static analysis tools from vendors like SonarSource and productivity extensions from the JetBrains ecosystem. The CLI supports custom tool manifest files and local tool resolution, permitting teams to distribute build utilities through registries such as NuGet Gallery and private feeds hosted on Azure Artifacts or JFrog Artifactory. Command behavior can be customized within editor workflows for Visual Studio Code and remote development setups with Visual Studio Live Share.
Adoption spans enterprise customers using Microsoft Azure, open-source projects hosted on GitHub, and independent software vendors building cross-platform products for environments like AWS and Google Cloud Platform. The CLI influenced tooling approaches in projects such as ASP.NET Core, Entity Framework Core, and contributed to community efforts exemplified by organizations like the .NET Foundation and standards discussions involving ECMA International. Its presence in containerized CI/CD pipelines, integration with monitoring products like Datadog, and use in educational programs at institutions akin to MIT and Stanford University underscore its role in modern software delivery practices.