# package-management

Скилл для работы с NuGet-пакетами: добавляет, удаляет и проверяет версии через dotnet CLI, без правки XML руками. Пригодится тем, кто ведёт несколько .NET-проектов в одном решении.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 583 установки · ★ 1238
- Автор: Aaronontheweb
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/Aaronontheweb/dotnet-skills/tree/HEAD/skills/package-management/SKILL.md
- Обновлён: 2026-10-11
- HTML: https://affpapa.org/nevibecode/skills/package-management

## Что делает

Скилл задаёт агенту порядок работы с пакетами: изменения идут только через `dotnet add package`, `dotnet remove package` и `dotnet list package`, а `.csproj` и `Directory.Packages.props` не редактируются напрямую. Так CLI сам проверяет существование пакета, подтягивает транзитивные зависимости и не даёт опечатке в XML сломать сборку.

Внутри описан переход на Central Package Management: один `Directory.Packages.props` в корне решения хранит версии, а проекты ссылаются на пакеты без версии. Для связанных пакетов скилл советует общие переменные версий — например, семейство Akka обновляется сменой одного значения. Есть отдельный разбор, когда CPM лучше не включать: старые решения с накопленными конфликтами версий, диапазоны версий (CPM их не поддерживает, нужна точная версия) и решения, разложенные по нескольким репозиториям.

Для CPM нужен .NET SDK 6.0.300 или новее, NuGet 6.2 и Visual Studio 2022 версии 17.2 и выше. Если у части команды инструменты старее, сборка упадёт — это стоит проверить до миграции. Сам скилл не вызывается вручную: в его настройках стоит `user-invocable: false`, поэтому его подхватывает агент в подходящий момент.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add Aaronontheweb/dotnet-skills --skill package-management -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/package-management/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/package-management/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add Aaronontheweb/dotnet-skills --skill package-management -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/package-management/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add Aaronontheweb/dotnet-skills --skill package-management -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/package-management/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install Aaronontheweb/dotnet-skills package-management
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/package-management/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add Aaronontheweb/dotnet-skills --skill package-management -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/Aaronontheweb/dotnet-skills --path skills/package-management
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/package-management/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add Aaronontheweb/dotnet-skills --skill package-management -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/Aaronontheweb/dotnet-skills/tree/HEAD/skills/package-management/SKILL.md

## Когда брать
- добавить NuGet-пакет, не трогая XML вручную
- свести версии пакетов одного семейства к одной переменной
- включить Central Package Management в решении
- найти устаревшие пакеты через `dotnet list package --outdated`
- разобраться с конфликтом версий при restore

## Примеры запросов агенту
- Добавь в проект `src/MyApp/MyApp.csproj` пакет Serilog версии 4.0.0 через dotnet CLI
- Покажи устаревшие NuGet-пакеты в решении
- Настрой CPM: создай `Directory.Packages.props` и убери версии из файлов проектов

## Похожие
- [migrate-to-shoehorn](https://affpapa.org/nevibecode/skills/migrate-to-shoehorn.md) — скилл · 475388 установок
- [write-swift](https://affpapa.org/nevibecode/skills/write-swift.md) — скилл · 119300 установок
- [megacave](https://affpapa.org/nevibecode/skills/megacave.md) — скилл · 25400 установок
- [find-docs](https://affpapa.org/nevibecode/skills/find-docs.md) — скилл · 9400 установок
- [typescript-advanced-types](https://affpapa.org/nevibecode/skills/typescript-advanced-types.md) — скилл · 92169 установок
- [smart-explore](https://affpapa.org/nevibecode/skills/smart-explore.md) — скилл · 7300 установок

Из того же набора: [aaronontheweb/dotnet-skills](https://affpapa.org/nevibecode/by/aaronontheweb/dotnet-skills.md) — 34 карточки

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
