From 7650bbac4063528e696e565f1febda8c7494dd10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E5=BC=9F=E8=B0=83=E8=B0=83?= <398188662@qq.com> Date: Tue, 27 May 2025 14:08:44 +0800 Subject: [PATCH] feat: add .NET CLI fix #945 --- README.md | 1 + docs/dotnet-cli.md | 119 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 120 insertions(+) create mode 100644 docs/dotnet-cli.md diff --git a/README.md b/README.md index 1eb5b9ee..bf25e285 100644 --- a/README.md +++ b/README.md @@ -189,6 +189,7 @@ Quick Reference [Cron](./docs/cron.md) [CMake](./docs/cmake.md) [CMD](./docs/cmd.md) +[.NET CLI](./docs/dotnet-cli.md) [Find](./docs/find.md) [FFmpeg](./docs/ffmpeg.md) [Gdb](./docs/gdb.md) diff --git a/docs/dotnet-cli.md b/docs/dotnet-cli.md new file mode 100644 index 00000000..0902c876 --- /dev/null +++ b/docs/dotnet-cli.md @@ -0,0 +1,119 @@ +.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` | +