🚀 快速安装

复制以下命令并运行,立即安装此 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 进行版本验证)。

核心规则

  1. 绝不直接编辑 .csproj.propsDirectory.Packages.props 文件来添加移除包。始终使用 dotnet add packagedotnet remove package 命令。
  2. 直接编辑允许用于更改现有包的版本
  3. 版本更新必须遵循强制工作流程:
    • 验证目标版本在 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

更新包版本

更新版本时,请遵循以下步骤:

  1. 验证版本是否存在
    使用 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 "<版本>" }
  2. 确定版本管理方式
    • 在解决方案根目录中搜索 Directory.Packages.props。如果存在,应通过 <PackageVersion Include="包名称" Version="1.2.3" /> 在其中管理版本。
    • 如果不存在,请检查各个 .csproj 文件中是否有 <PackageReference Include="包名称" Version="1.2.3" />
  3. 应用更改
    使用新版本字符串修改识别出的文件。
  4. 验证稳定性
    在项目或解决方案上运行 dotnet restore。如果出现错误,请还原更改并进行调查。

示例

用户:”将 Serilog 添加到 WebApi 项目”

操作:执行 dotnet add src/WebApi/WebApi.csproj package Serilog

用户:”将整个解决方案中的 Newtonsoft.Json 更新到 13.0.3″

操作

  1. 验证 13.0.3 是否存在:dotnet package search Newtonsoft.Json --exact-match --format json(并解析输出以确认 “13.0.3” 存在)。
  2. 查找定义它的位置(例如 Directory.Packages.props)。
  3. 编辑文件以更新版本。
  4. 运行 dotnet restore

📄 原始文档

完整文档(英文):

https://skills.sh/github/awesome-copilot/nuget-manager

💡 提示:点击上方链接查看 skills.sh 原始英文文档,方便对照翻译。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。