dotnet命令整理


基本格式:

dotnet [command] [arguments] [--additional-deps] [--additionalprobingpath] [-d|--diagnostics] [--fx-version] [-h|--help] [--info] [--roll-forward-on-no-candidate-fx] [-v|--verbose] [--version]

选项说明:
--additionaldeps <PATH>
其他路径deps.json文件。
--additionalprobingpath <PATH>
包含要进行探测的探测策略和程序集的路径。
-d|--diagnostics
启用诊断输出。
--fx-version <VERSION>
运行应用程序所使用的已安装 .NET Core 运行时的版本。 -h|--help
打印出有关命令的简短帮助。 如果使用 dotnet,还会打印可用命令的列表。
--info
打印出有关 CLI 工具和环境的详细信息,例如当前操作系统、提交该版本的 SHA 和其他信息。
--roll-forward-on-no-candidate-fx
在没有候选共享框架的情况下前滚。
-v|--verbose
启用详细输出。
--version
打印使用中的 .NET Core SDK 版本。

常用命令:

常规:

命令 函数
dotnet build 生成 .NET Core 应用程序。
dotnet clean 清除生成输出。
dotnet help 显示命令更详细的在线文档。
dotnet migrate 将有效的预览版 2 项目迁移到 .NET Core SDK 1.0 项目。
dotnet msbuild 提供对 MSBuild 命令行的访问权限。
dotnet new 为给定的模板初始化 C# 或 F # 项目。
dotnet pack 创建代码的 NuGet 包。
dotnet publish 发布 .NET 依赖于框架或独立应用程序。
dotnet restore 还原给定应用程序的依赖项。
dotnet run 从源运行应用程序。
dotnet sln 用于添加、删除和列出解决方案文件中项目的选项。
dotnet store 将程序集存储到运行时包存储区。
dotnet test 使用测试运行程序运行测试。

项目引用:

命令 函数
dotnet add reference 添加项目引用。
dotnet list reference 列出项目引用。
dotnet remove reference 删除项目引用。

NuGet 包:

命令 函数
dotnet add package 添加 NuGet 包。
dotnet remove package 删除 NuGet 包。

NuGet 命令:

命令 函数
dotnet nuget delete 从服务器删除或取消列出包。
dotnet nuget locals 清除或列出本地 NuGet 资源,例如 http 请求缓存、临时缓存或计算机范围的全局包文件夹。
dotnet nuget push 将包推送到服务器,并将其发布。

命令详细介绍:

dotnet-build

dotnet build命令将项目及其依赖项生成为一组二进制文件。 二进制文件包括中间语言 (IL) 文件(带 .dll 扩展名)和用于调试的符号文件(带 .pdb 扩展名)中的项目的代码。 生成依赖项 JSON 文件 (*.deps.json),该文件列出了应用程序的依赖项。 生成 *.runtimeconfig.json 文件,该文件指定应用程序的共享运行时及其版本。

选项:

-c|--configuration {Debug|Release}
定义生成配置。 默认值为 Debug。
-f|--framework
编译特定框架。 必须在项目文件中定义该框架。
--force
强制解析所有依赖项,即使上次还原已成功,也不例外。 这相当于删除 project.assets.json 文件。
-h|--help
打印出有关命令的简短帮助。
--no-dependencies
忽略项目间 (P2P) 引用,并仅生成指定要生成的根项目。
--no-incremental
将生成标记为对增量生成不安全。 这将关闭增量编译并强制完全重新生成项目依赖项关系图。
--no-restore
在生成期间不执行隐式还原。
-o|--output
放置生成二进制文件的目录。 指定此选项时还需要定义 --framework。
-r|--runtime
指定目标运行时。 -v|--verbosity
设置命令的详细级别。 允许使用的值为 q[uiet]、m[inimal]、n[ormal]、d[etailed] 和 diag[nostic]。
--version-suffix
在项目文件的版本字段中定义星号 (*) 版本后缀。 格式遵循 NuGet 的版本准则。

dotnet build [<PROJECT>] [-c|--configuration] [-f|--framework] [--force] [--no-dependencies] [--no-incremental] [--no-restore] [-o|--output] [-r|--runtime] [-v|--verbosity] [--version-suffix]
dotnet build [-h|--help]

示例

生成项目及其依赖项:
dotnet build
使用“发布”配置生成项目及其依赖项:
dotnet build --configuration Release
针对特定运行时(本例中为 Ubuntu 16.04)生成项目及其依赖项:
dotnet build --runtime ubuntu.16.04-x64

dotnet new

dotnet new - 根据指定的模板,创建新的项目、配置文件或解决方案。

选项:

--force
强制生成内容,即使会更改现有文件,也不例外。 输出目录已包含一个项目时,可能需要此操作。
-h|--help
打印命令帮助。 可针对 dotnet new 命令本身或任何模板(如 dotnet new mvc --help)调用它。
-i|--install <PATH|NUGET_ID>
从提供的 PATH 或 NUGET_ID 安装源或模板包。 若要了解如何创建自定义模板,请参阅 dotnet new 自定义模板。
-l|--list
列出包含指定名称的模板。 如果针对 dotnet new 命令调用,则它列出可能对给定的目录可用的模板。 例如,如果该目录已包含一个项目,则它不会列出所有项目模板。
-lang|--language {C#|F#|VB}
要创建的模板的语言。 接受的语言因模板而异(请参阅参数部分中的默认值)。 对于某些模板无效。
-n|--name
所创建的输出的名称。 如果未指定名称,使用的是当前目录的名称。
-o|--output
用于放置生成的输出的位置。 默认为当前目录。
--type
根据可用类型筛选模板。 预定义值为“project”、“item”或“other”。
-u|--uninstall <PATH|NUGET_ID>
从提供的 PATH 或 NUGET_ID 卸载源或模板包。

模板选项

console、angular、react、reactredux
--no-restore - 在项目创建期间不执行隐式还原。
classlib
-f|--framework - 指定目标框架。 值:netcoreapp2.0(要创建 .NET Core 类库的话)或 netstandard2.0(要创建 .NET Standard 类库的话)。 默认值为 netstandard2.0。
--no-restore - 在项目创建期间不执行隐式还原。
mstest、xunit
-p|--enable-pack - 允许使用 dotnet pack 为项目打包。
--no-restore - 在项目创建期间不执行隐式还原。
globaljson
--sdk-version - 指定要在 global.json 文件中使用的 .NET Core SDK 版本。
web
--use-launch-settings - 在生成的模板输出中添加 launchSettings.json。
--no-restore - 在项目创建期间不执行隐式还原。
webapi
-au|--auth - 要使用的身份验证类型。 可能的值为:
None - 不进行身份验证(默认)。
IndividualB2C - 使用 Azure AD B2C 进行个人身份验证。
SingleOrg - 对一个租户进行组织身份验证。
Windows - Windows 身份验证。
--no-restore - 在项目创建期间不执行隐式还原。
mvc、razor
-au|--auth - 要使用的身份验证类型。 可能的值为:
None - 不进行身份验证(默认)。
Individual - 个人身份验证。
IndividualB2C - 使用 Azure AD B2C 进行个人身份验证。
SingleOrg - 对一个租户进行组织身份验证。
MultiOrg - 对多个租户进行组织身份验证。
Windows - Windows 身份验证。
--no-restore - 在项目创建期间不执行隐式还原。
page -na|--namespace - 生成的代码的命名空间。 默认值为 MyApp.Namespace。
-np|--no-pagemodel - 创建不含 PageModel 的页。
viewimports
-na|--namespace - 生成的代码的命名空间。 默认值为 MyApp.Namespace。

示例

在当前目录中创建 F# 控制台应用程序项目:
dotnet new console -lang f#
在指定目录中创建 .NET Standard 类库项目(仅适用于 .NET Core 2.0 SDK 或更高版本):
dotnet new classlib -lang VB -o MyLibrary
在当前目录中新建定目标到 .NET Core 2.0 且没有设置身份验证的 ASP.NET Core C# MVC 应用程序项目:
dotnet new mvc -au None -f netcoreapp2.0
新建定目标到 .NET Core 2.0 的 xUnit 应用程序:
dotnet new xunit --framework netcoreapp2.0
列出适用于 MVC 的所有模板:
dotnet new mvc -l

dotnet publish

dotnet publish 编译应用程序、读取 project 文件中指定的所有依赖项并将生成的文件集发布到目录.

dotnet publish [<PROJECT>] [-c|--configuration] [-f|--framework] [--force] [--manifest] [no-dependencies] [--no-restore] [-o|--output] [-r|--runtime] [--self-contained] [-v|--verbosity] [--version-suffix]
dotnet publish [-h|--help]

选项:

-c|--configuration {Debug|Release}
定义生成配置。 默认值为 Debug。
-f|--framework <FRAMEWORK>
为指定的目标框架发布应用程序。 必须在项目文件中指定目标框架。
--force
强制解析所有依赖项,即使上次还原已成功,也不例外。 这相当于删除 project.assets.json 文件。
-h|--help
打印出有关命令的简短帮助。
--manifest <PATH_TO_MANIFEST_FILE>
指定一个或多个目标清单,用于剪裁与应用程序一同发布的一组包。 清单文件是 dotnet store 命令输出的一部分。 若要指定多个清单,请为每个清单添加一个 --manifest 选项。 自 .NET Core 2.0 SDK 起,可以使用此选项。 --no-dependencies
忽略项目间引用,仅还原根项目。
--no-restore
运行此命令时不执行隐式还原。
-o|--output <OUTPUT_DIRECTORY>
指定输出目录的路径。 如未指定,对于依赖于框架的部署,将默认为 ./bin/[configuration]/[framework]/ 或对于独立部署,将默认为 ./bin/[configuration]/[framework]/[runtime]。 如果提供的相对路径,则生成的输出目录是相对于项目文件位置,不适用于当前工作目录。
--self-contained
与应用程序一同发布 .NET Core 运行时,因此无需在目标计算机上安装运行时。 如果指定了运行时标识符,默认值为 true。
-r|--runtime <RUNTIME_IDENTIFIER>
发布针对给定运行时的应用程序。 这将在创建独立部署 (SCD) 时使用。

示例

在当前目录中发布项目:
dotnet publish
使用指定的项目文件发布应用程序:
dotnet publish ~/projects/app1/app1.csproj
使用 netcoreapp1.1 框架发布当前目录中的项目:
dotnet publish --framework netcoreapp1.1
使用 netcoreapp1.1 框架和 OS X 10.10 的运行时发布当前应用程序(必须在项目文件中列出此 RID)。
dotnet publish --framework netcoreapp1.1 --runtime osx.10.11-x64

dotnet run

dotnet run - 无需任何显式编译或启动命令即可运行源代码。

dotnet run [-c|--configuration] [-f|--framework] [--force] [--launch-profile] [--no-build] [--no-dependencies] [--no-launch-profile] [--no-restore] [-p|--project] [--runtime] [[--] [application arguments]]
dotnet run [-h|--help]

-c|--configuration {Debug|Release}
定义生成配置。 默认值为 Debug。
-f|--framework <FRAMEWORK>
使用指定框架生成并运行应用。 框架必须在项目文件中进行指定。
--force
强制解析所有依赖项,即使上次还原已成功,也不例外。 这相当于删除project.assets.json。
-h|--help
打印出有关命令的简短帮助。
--no-build
运行前不生成项目。
--no-dependencies
当使用项目到项目 (P2P) 引用还原项目时,还原根项目,不还原引用。
--no-launch-profile
不尝试使用 launchSettings.json 配置应用程序。
--no-restore
运行此命令时不执行隐式还原。
-p|--project <PATH>
指定要运行的项目文件的路径(文件夹名称或完整路径)。 如果未指定,则默认为当前目录。
--runtime <RUNTIME_IDENTIFIER>
指定要为其还原包的目标运行时。

示例

运行当前目录中的项目:
dotnet run
运行指定的项目:
dotnet run --project /projects/proj1/proj1.csproj
运行当前目录中的项目(在本例中,--help 参数被传递到应用程序,因为使用了 -- 参数):
dotnet run --configuration Release -- --help

dotnet sln

dotnet-sln - 修改 .NET Core 解决方案文件。

dotnet sln [<SOLUTION_NAME>] add <PROJECT> <PROJECT> ...
dotnet sln [<SOLUTION_NAME>] add <GLOBBING_PATTERN>
dotnet sln [<SOLUTION_NAME>] remove <PROJECT> <PROJECT> ...
dotnet sln [<SOLUTION_NAME>] remove <GLOBBING_PATTERN>
dotnet sln [<SOLUTION_NAME>] list
dotnet sln [-h|--help]

add ...
add
将一个或多个项目添加到解决方案文件中。 基于 Unix/Linux 的终端支持通配模式。
remove ...
remove
从解决方案文件中删除一个或多个项目。 基于 Unix/Linux 的终端支持通配模式。
list
列出解决方案文件中的所有项目。

示例

将一个 C# 项目添加到解决方案中:
dotnet sln todo.sln add todo-app/todo-app.csproj
从解决方案中删除一个 C# 项目:
dotnet sln todo.sln remove todo-app/todo-app.csproj
将多个 C# 项目添加到解决方案中:
dotnet sln todo.sln add todo-app/todo-app.csproj back-end/back-end.csproj
从解决方案中删除多个 C# 项目:
dotnet sln todo.sln remove todo-app/todo-app.csproj back-end/back-end.csproj
使用通配模式将多个 C# 项目添加到解决方案中:
dotnet sln todo.sln add **/*.csproj
使用通配模式从解决方案中删除多个 C# 项目:
dotnet sln todo.sln remove **/*.csproj

dotnet-add reference

dotnet add reference - 添加项目到项目 (P2P) 引用。

dotnet add [<PROJECT>] reference [-f|--framework] <PROJECT_REFERENCES> [-h|--help]

示例

添加项目引用:
dotnet add app/app.csproj reference lib/lib.csproj
在当前目录中添加对项目的多个项目引用:
dotnet add reference lib1/lib1.csproj lib2/lib2.csproj
使用 glob 模式在 Linux/Unix 上添加多个项目引用:
dotnet add app/app.csproj reference **/*.csproj