🚀 快速安装
复制以下命令并运行,立即安装此 Skill:
npx @anthropic-ai/skills install github/awesome-copilot/nuget-manager
💡 提示:需要 Node.js 和 NPM
NuGet 管理器
概述
此技能确保在 .NET 项目中一致且安全地管理 NuGet 包。它优先使用 dotnet 命令行界面来维护项目完整性,并对版本更新强制执行严格的验证和恢复工作流程。
前提条件
- 已安装 .NET 软件开发工具包(通常为 .NET 8.0 软件开发工具包或更高版本,或与目标解决方案兼容的版本)。
dotnet命令行界面在系统的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 [<项目>] package <包名称> [--version <版本>]。
示例:dotnet add src/MyProject/MyProject.csproj package Newtonsoft.Json
移除包
使用 dotnet remove [<项目>] package <包名称>。
示例:dotnet remove src/MyProject/MyProject.csproj package Newtonsoft.Json
更新包版本
更新版本时,请遵循以下步骤:
- 验证版本是否存在:
使用dotnet package search命令并配合精确匹配和 JSON 格式输出来检查版本是否存在。
使用jq:
dotnet package search <包名称> --exact-match --format json | jq -e '.searchResult[].packages[] | select(.version == "<版本>")'
使用 PowerShell:
(dotnet package search <包名称> --exact-match --format json | ConvertFrom-Json).searchResult.packages | Where-Object { $_.version -eq "<版本>" } - 确定版本管理方式:
- 在解决方案根目录中搜索
Directory.Packages.props。如果存在,应通过<PackageVersion Include="包名称" Version="1.2.3" />在其中管理版本。 - 如果不存在,请检查各个
.csproj文件中是否有<PackageReference Include="包名称" Version="1.2.3" />。
- 在解决方案根目录中搜索
- 应用更改:
使用新版本字符串修改识别出的文件。 - 验证稳定性:
在项目或解决方案上运行dotnet restore。如果出现错误,请还原更改并进行调查。
示例
用户:”将 Serilog 添加到 WebApi 项目”
操作:执行 dotnet add src/WebApi/WebApi.csproj package Serilog。
用户:”将整个解决方案中的 Newtonsoft.Json 更新到 13.0.3″
操作:
- 验证 13.0.3 是否存在:
dotnet package search Newtonsoft.Json --exact-match --format json(并解析输出以确认 “13.0.3” 存在)。 - 查找定义它的位置(例如
Directory.Packages.props)。 - 编辑文件以更新版本。
- 运行
dotnet restore。
📄 原始文档
完整文档(英文):
https://skills.sh/github/awesome-copilot/nuget-manager
💡 提示:点击上方链接查看 skills.sh 原始英文文档,方便对照翻译。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

评论(0)