nuget-manager — скилл для GitHub Copilot: что делает и установка
Управляет NuGet-пакетами в .NET-проектах через dotnet CLI. Нужен при добавлении, удалении и обновлении зависимостей.
npx skills add github/awesome-copilot --skill nuget-managerЧто делает nuget-manager
Скилл задаёт порядок работы с NuGet в проектах и решениях .NET. Новые пакеты добавляются через dotnet add package, а удаляются через dotnet remove package; править .csproj, .props и Directory.Packages.props для этих операций нельзя.
Версию существующего пакета разрешено изменить в файле напрямую, но сначала скилл проверяет её через dotnet package search. Затем он определяет, где хранятся версии: в Directory.Packages.props или в конкретном .csproj, меняет строку версии и запускает dotnet restore. При ошибке изменения нужно откатить и разобраться с причиной.
Для работы нужны .NET SDK и dotnet в PATH; для проверки версии также нужен jq или PowerShell. Ставьте скилл, если хотите, чтобы агент не правил ссылки на пакеты произвольно.
Какие задачи решает
- добавить NuGet-пакет в нужный
.csproj - удалить зависимость через
dotnet remove package - проверить существование версии пакета
- обновить версию при central package management
- запустить
dotnet restoreпосле изменения версии
Примеры запросов агенту
- Добавь Serilog в проект `src/WebApi/WebApi.csproj`.
- Обнови Newtonsoft.Json до 13.0.3 во всём решении.
- Удали пакет Newtonsoft.Json из `src/MyProject/MyProject.csproj`.
Как установить nuget-manager
1Через Skills CLI (Vercel)
npx skills add github/awesome-copilot --skill nuget-manager2GitHub CLI
gh skill install github/awesome-copilot nuget-manager3Вручную: положить файлы
.github/skills/nuget-manager/SKILL.md1Через Skills CLI (Vercel)
npx skills add github/awesome-copilot --skill nuget-manager -a claude-code2Вручную: положить файлы
~/.claude/skills/nuget-manager/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/nuget-manager/
Вручную: положить файлы
.agents/skills/nuget-manager/SKILL.mdДля всех проектов — ~/.agents/skills/
Вручную: положить файлы
.cursor/skills/nuget-manager/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
Командой платформы
gemini skills install https://github.com/github/awesome-copilot --path skills/nuget-managerВручную: положить файлы
.devin/skills/nuget-manager/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Claude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Из того же набора554
Весь набор →Похожие
Вопросы о nuget-manager
Как установить nuget-manager в GitHub Copilot?
Выполните npx skills add github/awesome-copilot --skill nuget-manager. Также доступна команда gh skill install github/awesome-copilot nuget-manager.
Что делает nuget-manager?
Скилл управляет добавлением, удалением и обновлением NuGet-пакетов в .NET-проектах. Для операций с пакетами он использует dotnet CLI, а после смены версии запускает dotnet restore.
Можно ли менять файлы пакетов вручную?
Да, но только при обновлении версии уже подключённого пакета. Для добавления и удаления нужно применять dotnet add package и dotnet remove package.
Исходный текст
SKILL.md · MIT
---
name: nuget-manager
description: 'Manage NuGet packages in .NET projects/solutions. Use this skill when adding, removing, or updating NuGet package versions. It enforces using `dotnet` CLI for package management and provides strict procedures for direct file edits only when updating versions.'
---
# NuGet Manager
## Overview
This skill ensures consistent and safe management of NuGet packages across .NET projects. It prioritizes using the `dotnet` CLI to maintain project integrity and enforces a strict verification and restoration workflow for version updates.
## Prerequisites
- .NET SDK installed (typically .NET 8.0 SDK or later, or a version compatible with the target solution).
- `dotnet` CLI available on your `PATH`.
- `jq` (JSON processor) OR PowerShell (for version verification using `dotnet package search`).
## Core Rules
1. **NEVER** directly edit `.csproj`, `.props`, or `Directory.Packages.props` files to **add** or **remove** packages. Always use `dotnet add package` and `dotnet remove package` commands.
2. **DIRECT EDITING** is ONLY permitted for **changing versions** of existing packages.
3. **VERSION UPDATES** must follow the mandatory workflow:
- Verify the target version exists on NuGet.
- Determine if versions are managed per-project (`.csproj`) or centrally (`Directory.Packages.props`).
- Update the version string in the appropriate file.
- Immediately run `dotnet restore` to verify compatibility.
## Workflows
### Adding a Package
Use `dotnet add [<PROJECT>] package <PACKAGE_NAME> [--version <VERSION>]`.
Example: `dotnet add src/MyProject/MyProject.csproj package Newtonsoft.Json`
### Removing a Package
Use `dotnet remove [<PROJECT>] package <PACKAGE_NAME>`.
Example: `dotnet remove src/MyProject/MyProject.csproj package Newtonsoft.Json`
### Updating Package Versions
When updating a version, follow these steps:
1. **Verify Version Existence**:
Check if the version exists using the `dotnet package search` command with exact match and JSON formatting.
Using `jq`:
`dotnet package search <PACKAGE_NAME> --exact-match --format json | jq -e '.searchResult[].packages[] | select(.version == "<VERSION>")'`
Using PowerShell:
`(dotnet package search <PACKAGE_NAME> --exact-match --format json | ConvertFrom-Json).searchResult.packages | Where-Object { $_.version -eq "<VERSION>" }`
2. **Determine Version Management**:
- Search for `Directory.Packages.props` in the solution root. If present, versions should be managed there via `<PackageVersion Include="Package.Name" Version="1.2.3" />`.
- If absent, check individual `.csproj` files for `<PackageReference Include="Package.Name" Version="1.2.3" />`.
3. **Apply Changes**:
Modify the identified file with the new version string.
4. **Verify Stability**:
Run `dotnet restore` on the project or solution. If errors occur, revert the change and investigate.
## Examples
### User: "Add Serilog to the WebApi project"
**Action**: Execute `dotnet add src/WebApi/WebApi.csproj package Serilog`.
### User: "Update Newtonsoft.Json to 13.0.3 in the whole solution"
**Action**:
1. Verify 13.0.3 exists: `dotnet package search Newtonsoft.Json --exact-match --format json` (and parse output to confirm "13.0.3" is present).
2. Find where it's defined (e.g., `Directory.Packages.props`).
3. Edit the file to update the version.
4. Run `dotnet restore`.
© github · MIT · github/awesome-copilot