dotnet 命令
本文适用于: ✔️ .NET Core 2.1 SDK 及更高版本
“属性”
dotnet
- .NET Core CLI 的通用驱动程序。
摘要
获取有关可用命令和环境的信息:
dotnet [-h|--help] [--version] [--info]
[--list-runtimes] [--list-sdks]
运行命令(需要 SDK 安装):
dotnet <COMMAND> [-d|--diagnostics] [-h|--help] [--verbosity]
[command-options] [arguments]
运行应用程序:
dotnet [--additionalprobingpath] [--additional-deps]
[--fx-version] [--roll-forward]
<PATH_TO_APPLICATION> [arguments]
dotnet exec [--additionalprobingpath] [--additional-deps]
[--fx-version] [--roll-forward]
<PATH_TO_APPLICATION> [arguments]
--roll-forward
自 .NET Core 3.x 起可用。 使用 .NET Core 2.x 的 --roll-forward-on-no-candidate-fx
。
描述
dotnet
命令有两个函数:
它提供了用于处理 .NET Core 项目的命令。
例如,
dotnet build
生成项目。 每个命令定义自己的选项和参数。 所有命令都支持--help
选项,用于打印有关如何使用命令的简短文档。它运行 .NET Core 应用程序。
指定应用程序
.dll
文件的路径以运行应用程序。 例如,dotnet myapp.dll
运行myapp
应用程序。 要了解部署选项,请参阅 .NET Core 应用程序部署。
选项
dotnet
本身有不同的选项,可用于运行命令和运行应用程序。
dotnet 本身的选项
以下是 dotnet
本身的选项。 例如 dotnet --info
。 这些选项打印出有关环境的信息。
--info
打印出有关 .NET Core 安装和计算机环境(如当前操作系统)的详细信息,并提交 .NET Core 版本的 SHA。
--version
打印使用中的 .NET Core SDK 版本。
--list-runtimes
打印已安装的 .NET Core 运行时的列表。
--list-sdks
打印已安装的 .NET Core SDK 的列表。
-h|--help
打印可用命令列表。
用于运行命令的 SDK 选项
以下选项适用于使用命令的 dotnet
。 例如 dotnet build --help
。
-d|--diagnostics
启用诊断输出。
-v|--verbosity <LEVEL>
设置命令的详细级别。 允许使用的值为
q[uiet]
、m[inimal]
、n[ormal]
、d[etailed]
和diag[nostic]
。 并非在每个命令中均受支持。 请参阅特定的命令页,确定此选项是否可用。-h|--help
打印出给定命令的文档,如
dotnet build --help
。command options
每个命令定义特定于该命令的选项。 有关可用选项的列表,请参阅特定命令页。
运行时选项
dotnet
运行应用程序时,可以使用以下选项。 例如 dotnet myapp.dll --fx-version 3.1.1
。
--additionalprobingpath <PATH>
包含要进行探测的探测策略和程序集的路径。
--additional-deps <PATH>
附加 .deps.json 文件的路径 。 deps.json 文件包含依赖项、编译依赖项和用于解决程序集冲突的版本信息列表 。 有关详细信息,请参阅 GitHub 上的运行时配置文件。
--fx-version <VERSION>
用于运行应用程序的 .NET Core 运行时版本。
--runtimeconfig
runtimeconfig.template.json 文件的路径 。 runtimeconfig.template.json 文件是包含运行时设置的配置文件 。 有关详细信息,请参阅 .NET Core 运行时配置设置。
--roll-forward-on-no-candidate-fx <N>
在 .NET Core 2.x SDK 中可用 。所需的共享框架不可用时,请定义行为。
N
可以是:0
- 禁用次要版本前滚。1
- 前滚次要版本,但不前滚主版本。 这是默认行为。2
- 前滚次要和主版本。
有关详细信息,请参阅前滚。
--roll-forward <SETTING>
自 .NET Core SDK 3.0 起可用 。控制将前滚操作应用于应用的方式。
SETTING
可以为下列值之一。 如果未指定,则Minor
为默认类型。LatestPatch
- 前滚到最高补丁版本。 这会禁用次要版本前滚。Minor
- 如果缺少所请求的次要版本,则前滚到最低的较高次要版本。 如果存在所请求的次要版本,则使用 LatestPatch 策略。Major
- 如果缺少所请求的主要版本,则前滚到最低的较高主要版本和最低的次要版本。 如果存在所请求的主要版本,则使用 Minor 策略。LatestMinor
- 即使存在所请求的次要版本,仍前滚到最高次要版本。 适用于组件托管方案。LatestMajor
- 即使存在所请求的主要版本,仍前滚到最高主要版本和最高次要版本。 适用于组件托管方案。Disable
- 不前滚。 仅绑定到指定的版本。 建议不要将此策略用于一般用途,因为它会禁用前滚到最新补丁的功能。 该值仅建议用于测试。
除 Disable
外,所有设置都将使用可用的最高补丁版本。
前滚行为还可以在项目文件属性、运行时配置文件属性和环境变量中进行配置。 有关详细信息,请参阅主版本运行时前滚。
dotnet 命令
常规
命令 | 函数 |
---|---|
dotnet build | 生成 .NET Core 应用程序。 |
dotnet build-server | 与通过生成启动的服务器进行交互。 |
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 push | 将包推送到服务器,并将其发布。 |
dotnet nuget locals | 清除或列出本地 NuGet 资源,例如 http 请求缓存、临时缓存或计算机范围的全局包文件夹。 |
dotnet nuget add source | 添加 NuGet 源。 |
dotnet nuget disable source | 禁用 NuGet 源。 |
dotnet nuget enable source | 启用 NuGet 源。 |
dotnet nuget list source | 列出所有已配置的 NuGet 源。 |
dotnet nuget remove source | 删除 NuGet 源。 |
dotnet nuget update source | 更新 NuGet 源。 |
全局、工具路径和本地工具命令
工具是控制台应用程序,它们从 NuGet 包中安装并从命令提示符处进行调用。 你可自行编写工具,也可安装由第三方编写的工具。 工具也称为全局工具、工具路径工具和本地工具。 有关详细信息,请参阅 .NET Core 工具概述。 全局和工具路径工具从 .NET Core SDK 2.1 开始可用。 本地工具从 .NET Core SDK 3.0 开始可用。
命令 | 函数 |
---|---|
dotnet tool install | 在计算机上安装工具。 |
dotnet tool list | 列出计算机上当前安装的所有全局、工具路径或本地工具。 |
dotnet tool uninstall | 从计算机中卸载工具。 |
dotnet tool update | 更新计算机上安装的工具。 |
其他工具
自 .NET Core SDK 2.1.300 开始,许多使用 DotnetCliToolReference
的仅在每个项目的基础上可用的工具现作为 .NET Core SDK 的一部分提供。 下表中列出了这些工具:
工具 | 函数 |
---|---|
dev-certs | 创建和管理开发证书。 |
ef | Entity Framework Core 命令行工具。 |
sql-cache | SQL Server 缓存命令行工具。 |
user-secrets | 管理开发用户机密。 |
watch | 启动文件观察程序,以在更改文件时运行命令。 |
有关每个工具的详细信息,请键入 dotnet <tool-name> --help
。
示例
创建新的 .NET Core 控制台应用程序:
dotnet new console
生成给定目录中的项目及其依赖项:
dotnet build
运行应用程序:
dotnet myapp.dll
环境变量
DOTNET_ROOT
,DOTNET_ROOT(x86)
指定 .NET Core 运行时的位置(如果运行时未安装在默认位置)。 Windows 上的默认位置为
C:\Program Files\dotnet
。 Linux 和 macOS 上的默认位置为/usr/share/dotnet
。 此环境变量仅在通过生成的可执行文件 (apphosts) 运行应用时使用。 在 64 位 OS 上运行 32 位可执行文件时,改用DOTNET_ROOT(x86)
。DOTNET_PACKAGES
全局包文件夹。 如果未设置,则默认为 Unix 上的
~/.nuget/packages
或 Windows 上的%userprofile%\.nuget\packages
。DOTNET_SERVICING
指定加载运行时期间共享主机要使用的服务索引的位置。
DOTNET_NOLOGO
指定是否在首次运行时显示 .NET Core 欢迎消息和遥测消息。 设置为
true
可将这些消息静音(接受true
、1
或yes
值),或者,设置为false
可允许显示消息(接受false
、0
或no
值)。 如果未设置,则默认值为false
,表示在首次运行时将显示消息。 请注意,此标志对遥测不起作用(请参阅DOTNET_CLI_TELEMETRY_OPTOUT
中关于如何选择不发送遥测数据的信息)。DOTNET_CLI_TELEMETRY_OPTOUT
指定是否收集并向 Microsoft 发送 .NET Core 工具使用情况的相关数据。 设置为
true
以选择退出遥测功能(接受的值为true
、1
或yes
)。 否则,设置为false
以选择加入遥测功能(接受的值为false
、0
或no
)。 如果未设置,则默认为false
且遥测功能为活动状态。DOTNET_MULTILEVEL_LOOKUP
指定是否从全局位置解析 .NET Core 运行时、共享框架或 SDK。 如果未设置,则默认为 1(逻辑
true
)。 设置为 0(逻辑false
),不从全局位置解析,并且具有独立的 .NET Core 安装。 有关多级别查找的详细信息,请参阅 Multi-level SharedFX Lookup(多级别 SharedFX 查找)。DOTNET_ROLL_FORWARD
自 .NET Core 3.x SDK 起可用 。确定前滚行为。 有关详细信息,请参阅本文章前面介绍的
--roll-forward
选项。DOTNET_ROLL_FORWARD_ON_NO_CANDIDATE_FX
在 .NET Core 2.x SDK 中可用 。如果设置为
0
,则禁用次要版本前滚。 有关详细信息,请参阅前滚。DOTNET_CLI_UI_LANGUAGE
使用区域设置值(如
en-us
)设置 CLI UI 的语言。 支持的值与 Visual Studio 中的值相同。 有关详细信息,请参阅 Visual Studio 安装文档中有关更改安装程序语言一节。 .NET 资源管理器规则适用,因此你无需选取精确匹配项 — 你还可以在CultureInfo
树中选取后代。 例如,如果将其设置为fr-CA
,CLI 将查找并使用fr
翻译。 如果你将其设置为不受支持的语言,CLI 会退回到英语。DOTNET_DISABLE_GUI_ERRORS
对于启用了 GUI 的已生成可执行文件 - 禁用对话框弹出窗口,此窗口通常显示某些类错误。 在这些情况下,它仅写入到
stderr
并退出。DOTNET_ADDITIONAL_DEPS
等效于 CLI 选项
--additional-deps
。DOTNET_RUNTIME_ID
替代检测到的 RID。
DOTNET_SHARED_STORE
程序集解析在某些情况下将回退到的“共享存储”的位置。
DOTNET_STARTUP_HOOKS
要从中加载和执行启动挂钩的程序集列表。
COREHOST_TRACE
,COREHOST_TRACEFILE
,COREHOST_TRACE_VERBOSITY
控制来自托管组件(例如
dotnet.exe
、hostfxr
和hostpolicy
)的诊断跟踪。