.NET Core CLI 是用于开发 .NET Core 应用程序的工具链,它具有跨平台的特性,也就是说同一个命令在不同的平台下具有一致性。它是很多高级工具,如集成开发环境(IDE),编辑器的基础。另外使用 Visual Studio Code 开发和构建 .NET Core 应用的 Docker 镜像等都需要直接使用命令,因此掌握 .NET Core CLI 对学习 .NET Core 非常重要。
安装 .NET Core SDK 后,dotnet 命令就是可用的。dotnet 是运行命令行命令的通用驱动程序,它有两个作用,运行依赖于框架的应用和执行命令。
在 dotnet 后面指定 .dll 文件的名称,则是运行依赖于框架的应用,例如 dotnet /path/to/my_app.dll
。如果 dotnet 命令是从 .dll 文件所在目录执行的,可以直接使用 dotnet my_app.dll
。
为 dotnet 提供命令时,dotnet.exe 启动 CLI 命令执行过程。首先,驱动程序确定要使用的 SDK 版本。驱动程序默认使用最新的 SDK 版本,可以通过 --fix-version <VERSION>
选项指定要使用的 SDK 版本。确定 SDK 版本后,驱动程序执行命令。
dotnet 的用法如下:
dotnet [command] [arguments] [--additional-deps] [--additionalprobingpath] [-d|--diagnostics] [--fx-version] [-h|--help] [--info] [--roll-forward-on-no-candidate-fx] [-v|--verbosity] [--version]
command 表示命令,arguments 表示参数,以 “--” 或 “-” 开头的表示选项。
dotnet 命令分为以下几类。
基本命令
命令 | 功能 |
---|---|
dotnet new | 初始化 .NET 项目 |
dotnet restore | 还原 .NET 项目的依赖 |
dotnet build | 生成 .NET 项目 |
dotnet msbuild | 生成 .NET 项目 |
dotnet run | 编译并运行 .NET 项目 |
dotnet publish | 发布 .NET 项目 |
dotnet test | 运行单元测试 |
dotnet vstest | 从指定的文件运行测试 |
dotnet pack | 创建 NuGet 包 |
dotnet migrate | 迁移基于 project.json 的项目为基于 msbuild 的项目 |
dotnet clean | 清除生成输出 |
dotnet sln | 修改解决方案文件 |
dotnet help | 显示命令的在线帮助文档 |
dotnet store | 存储程序集到运行时包存储区 |
项目修改命令
命令 | 功能 |
---|---|
dotnet add package | 添加 NuGet 包 |
dotnet remove package | 删除 NuGet 包 |
dotnet add reference | 添加项目引用 |
dotnet list reference | 列出项目引用 |
dotnet remove reference | 删除项目引用 |
Nuget 命令
命令 | 功能 |
---|---|
dotnet nuget delete | 从服务器删除或取消列出包 |
dotnet nuget locals | 清除或列出本地 Nuget 资源 |
dotnet nuget push | 将包推送到服务器并发布 |
后面的内容会详细介绍一些常用命令的用法,先从介绍 dotnet 的选项开始。
公共选项
-h|--help
打印帮助信息。如果直接跟在 dotnet 后面,打印的是 dotnet 的用法以及可用的命令,例如 dotnet -h
。如果跟在命令后面打印的则是命令的帮助信息,例如 dotnet build -h
。
-v|--verbosity
设置命令的详细级别。 允许的值有 q[uiet]
、m[inimal]
、n[ormal]
、d[etailed]
和diag[nostic]
。
SDK 选项
--version
打印 CLI 工具的版本,只有一个版本号。
--info
打印 CLI 工具、运行时环境以及 .NET Core 共享框架的信息。
-d|--diagnostics
启用诊断输出。
运行时选项
--additionaldeps <PATH>
其他 deps.json 文件的路径。
--additionalprobingpath <PATH>
包含要进行探测的探测策略和程序集的路径。
--fx-version <VERSION>
运行应用程序所使用的已安装 .NET Core 运行时的版本。
--roll-forward-on-no-candidate-fx
在没有候选共享框架的情况下前滚。