mcpField
N
nuget-manager

nuget-manager

github.com/github开发40.5k14.4k 次安装今天更新
代码仓库

关于 nuget-manager

用于在 .NET 项目中统一管理 NuGet 包的技能。它优先使用 dotnet 命令行修改包,并要求更新版本时先核实版本,再执行还原。

主要功能

  1. 01通过 dotnet 命令行添加包
  2. 02通过 dotnet 命令行移除包
  3. 03核实 NuGet 上的包版本
  4. 04确定版本管理位置
  5. 05更新后运行 dotnet restore

适用场景

  1. 01为 .NET 项目添加依赖
  2. 02安全移除 NuGet 包
  3. 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 或更高版本,或与目标解决方案兼容的版本)。
  • dotnet CLI 在 PATH 中可用。
  • jq(JSON 处理器)或 PowerShell(用于使用 dotnet package search 进行版本验证)。

核心规则

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

更新包版本

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

  1. 验证版本存在: 使用 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>" }

  2. 确定版本管理:

    • 在解决方案根目录中搜索 Directory.Packages.props。如果存在,应在此处通过 <PackageVersion Include="Package.Name" Version="1.2.3" /> 管理版本。
    • 如果不存在,请检查各个 .csproj 文件中的 <PackageReference Include="Package.Name" Version="1.2.3" />。
  3. 应用更改: 使用新的版本字符串修改已识别的文件。

  4. 验证稳定性: 在项目或解决方案上运行 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"

操作:

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

评论

支持 Markdown