.NET CLI 备忘清单 === 本备忘单总结了 [.NET](https://learn.microsoft.com/zh-cn/dotnet/core/tools/) 命令行接口 (CLI) 工具,以供快速参考 .NET CLI 备忘清单 --- ### 介绍 `.NET CLI` 命令由 **驱动程序(`dotnet`)**、**命令**、**参数** 和 **选项** 组成。典型流程如下: ```bash # 创建控制台应用 dotnet new console # 构建并指定输出目录 dotnet build --output ./build_output # 运行构建结果 dotnet ./build_output/my_app.dll ``` ### 基本命令 | 命令 | 说明 | 示例 | |--------------|--------------|--------------| | `new` | 创建新项目或文件模板 | `dotnet new console` | | `restore` | 还原项目依赖项 | `dotnet restore` | | `build` | 构建项目 | `dotnet build` | | `publish` | 发布应用以部署 | `dotnet publish -c Release -o ./publish`| | `run` | 运行项目 | `dotnet run` | | `test` | 运行测试(使用 xUnit/NUnit 等) | `dotnet test` | | `vstest` | 运行已编译的测试程序集 | `dotnet vstest ./bin/Debug/test.dll` | | `pack` | 打包为 NuGet 包 | `dotnet pack` | | `migrate` | 迁移旧版项目(已弃用) | `dotnet migrate` | | `clean` | 清理构建输出 | `dotnet clean` | | `sln` | 管理 `.sln` 解决方案文件 | `dotnet sln add ./MyApp/MyApp.csproj` | | `help` | 显示帮助信息 | `dotnet help build` | | `store` | 预编译和缓存程序集(高级用法) | `dotnet store` | | `watch` | 监视文件更改并自动运行命令 | `dotnet watch run` | | `format` | 格式化代码(自 .NET 6 起支持) | `dotnet format` | ### 项目修改命令 | 命令 | 说明 | 示例 | |--------------|--------------|--------------| | `package add` | 添加 NuGet 包依赖 | `dotnet add package Newtonsoft.Json` | | `package list` | 列出项目中的所有包依赖 | `dotnet list package` | | `package remove` | 移除 NuGet 包依赖 | `dotnet remove package Newtonsoft.Json` | | `package search` | 搜索 NuGet 包 | `dotnet search package Newtonsoft.Json` | | `reference add` | 添加项目引用(*.csproj) | `dotnet add reference ../CommonLib/CommonLib.csproj` | | `reference list` | 列出当前项目引用的其他项目 | `dotnet list reference` | | `reference remove` | 移除项目引用 | `dotnet remove reference ../CommonLib/CommonLib.csproj` | ### 工作负荷管理命令 | 命令 | 说明 | 示例 | |--------------|--------------|--------------| | `workload` | 顶级命令,显示所有 workload 子命令 | `dotnet workload --help` | | `workload install` | 安装指定的工作负荷(如 MAUI、Web 等) | `dotnet workload install maui` | | `workload uninstall` | 卸载指定的工作负荷 | `dotnet workload uninstall maui` | | `workload update` | 更新所有已安装的工作负荷 | `dotnet workload update` | | `workload list` | 显示当前已安装的工作负荷 | `dotnet workload list` | | `workload restore` | 还原项目所需的工作负荷 | `dotnet workload restore` | | `workload search` | 搜索可用的工作负荷 | `dotnet workload search` | | `workload repair` | 修复已安装的工作负荷 | `dotnet workload repair` | | `workload config` | 配置自定义源、缓存路径等(.NET 8.0.400+) | `dotnet workload config list` | ### NuGet 命令 | 命令 | 说明 | 示例 | |--------------|--------------|--------------| | `nuget delete` | 从源中删除一个 NuGet 包 | `dotnet nuget delete MyLib 1.0.0 -s https://api.nuget.org/v3/index.json`| | `nuget locals` | 清理 NuGet 缓存 | `dotnet nuget locals all --clear` | | `nuget push` | 将 NuGet 包推送到服务器(如 nuget.org) | `dotnet nuget push MyLib.1.0.0.nupkg -k API_KEY -s https://api.nuget.org/v3/index.json` | | `nuget add source` | 添加一个新的 NuGet 源 | `dotnet nuget add source https://myserver/index.json -n MySource` | | `nuget disable source` | 禁用一个现有的 NuGet 源 | `dotnet nuget disable source MySource` | | `nuget enable source` | 启用已禁用的 NuGet 源 | `dotnet nuget enable source MySource` | | `nuget list source` | 列出所有已配置的 NuGet 源 | `dotnet nuget list source` | | `nuget remove source` | 移除已配置的 NuGet 源 | `dotnet nuget remove source MySource` | | `nuget update source` | 更新现有 NuGet 源信息 | `dotnet nuget update source MySource -s https://new-url` | | `nuget verify` | 验证 NuGet 包签名(.NET 5+) | `dotnet nuget verify MyLib.1.0.0.nupkg` | | `nuget trust` | 管理受信任的签名证书(.NET 5+) | `dotnet nuget trust list` | | `nuget sign` | 对 NuGet 包进行签名(.NET 6+) | `dotnet nuget sign MyLib.1.0.0.nupkg --certificate-path cert.pfx` | | `package search` | 搜索 NuGet 包(.NET 8.0.2xx+) | `dotnet package search Newtonsoft.Json` | | `nuget why` | 显示为什么某个包被安装(.NET 8.0.4xx+)| `dotnet nuget why Newtonsoft.Json` | ### 高级命令 | 命令 | 说明 | 示例 | |--------------|--------------|--------------| | `sdk check` | 显示可用的 SDK/运行时版本,并检测更新 | `dotnet sdk check` | | `msbuild` | 使用 MSBuild 构建项目(提供更多构建自定义性) | `dotnet msbuild /t:Clean;Build /p:Configuration=Release` | | `build-server` | 管理后端构建服务器(如清理缓存、关闭等) | `dotnet build-server shutdown` | | `dev-certs` | 管理开发 HTTPS 证书 | `dotnet dev-certs https --trust` | | `dotnet install script` | 获取可安装指定版本 .NET 的脚本(Linux/macOS) | `curl -sSL https://dot.net/v1/dotnet-install.sh \| bash` | ### 工具管理命令 | 命令 | 说明 | 示例 | |--------------|--------------|--------------| | `tool install` | 安装 .NET 工具(本地或全局) | `dotnet tool install -g dotnet-ef` | | `tool list` | 列出已安装的工具 | `dotnet tool list -g` | | `tool update` | 更新指定工具 | `dotnet tool update -g dotnet-ef` | | `tool restore` | 恢复项目中定义的工具(基于 manifest) | `dotnet tool restore` | | `tool run` | 运行本地安装的工具 | `dotnet tool run my-tool` | | `tool uninstall` | 卸载已安装的工具 | `dotnet tool uninstall -g dotnet-ef` | | `tool search` | 搜索 NuGet 上可用的工具 | `dotnet tool search dotnet-ef` |