关于 nuget-manager
用于在 .NET 项目中统一管理 NuGet 包的技能。它优先使用 dotnet 命令行修改包,并要求更新版本时先核实版本,再执行还原。
主要功能
- 01通过 dotnet 命令行添加包
- 02通过 dotnet 命令行移除包
- 03核实 NuGet 上的包版本
- 04确定版本管理位置
- 05更新后运行 dotnet restore
适用场景
- 01为 .NET 项目添加依赖
- 02安全移除 NuGet 包
- 03更新并验证包版本
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ github/ awesome-copilot --skill nuget-manager安装后在 Claude Code 中输入/nuget-manager确认已加载。
详细介绍
NuGet Manager
概述
此技能确保跨 .NET 项目一致且安全地管理 NuGet 包。它优先使用 dotnet CLI 以维护项目完整性,并对版本更新强制执行严格的验证和还原工作流。
先决条件
- 已安装 .NET SDK(通常为 .NET 8.0 SDK 或更高版本,或与目标解决方案兼容的版本)。
dotnetCLI 在PATH中可用。jq(JSON 处理器)或 PowerShell(用于使用dotnet package search进行版本验证)。
核心规则
- 绝不直接编辑
.csproj、.props或Directory.Packages.props文件来添加或移除包。始终使用dotnet add package和dotnet remove package命令。 - 直接编辑仅允许用于更改现有包的版本。
- 版本更新必须遵循强制工作流:
- 验证目标版本在 NuGet 上存在。
- 确定版本是按项目(
.csproj)管理还是集中管理(Directory.Packages.props)。 - 在相应文件中更新版本字符串。
- 立即运行
dotnet restore以验证兼容性。
工作流
添加包
使用 dotnet add [<PROJECT>] package <PACKAGE_NAME> [--version <VERSION>]。
示例:dotnet add src/MyProject/MyProject.csproj package Newtonsoft.Json
移除包
使用 dotnet remove [<PROJECT>] package <PACKAGE_NAME>。
示例:dotnet remove src/MyProject/MyProject.csproj package Newtonsoft.Json
更新包版本
更新版本时,请遵循以下步骤:
-
验证版本存在: 使用
dotnet package search命令并指定精确匹配和 JSON 格式来检查该版本是否存在。 使用jq:dotnet package search <PACKAGE_NAME> --exact-match --format json | jq -e '.searchResult[].packages[] | select(.version == "<VERSION>")'使用 PowerShell:(dotnet package search <PACKAGE_NAME> --exact-match --format json | ConvertFrom-Json).searchResult.packages | Where-Object { $_.version -eq "<VERSION>" } -
确定版本管理:
- 在解决方案根目录中搜索
Directory.Packages.props。如果存在,应在此处通过<PackageVersion Include="Package.Name" Version="1.2.3" />管理版本。 - 如果不存在,请检查各个
.csproj文件中的<PackageReference Include="Package.Name" Version="1.2.3" />。
- 在解决方案根目录中搜索
-
应用更改: 使用新的版本字符串修改已识别的文件。
-
验证稳定性: 在项目或解决方案上运行
dotnet restore。如果出现错误,请还原更改并进行调查。
示例
用户:"Add Serilog to the WebApi project"
操作:执行 dotnet add src/WebApi/WebApi.csproj package Serilog。
用户:"Update Newtonsoft.Json to 13.0.3 in the whole solution"
操作:
- 验证 13.0.3 存在:
dotnet package search Newtonsoft.Json --exact-match --format json(并解析输出以确认存在 "13.0.3")。 - 找到其定义位置(例如
Directory.Packages.props)。 - 编辑文件以更新版本。
- 运行
dotnet restore。