nuget-managerOfficialменеджер NuGet GitHub Copilot
Менеджер NuGet.
Установка
npx -y skills add github/awesome-copilot --skill nuget-manager --agent claude-codeNuGet Manager
Обзор
Этот скилл обеспечивает согласованное и безопасное управление NuGet-пакетами в .NET-проектах. Он отдаёт приоритет CLI dotnet ради целостности проекта и навязывает строгий процесс проверки и восстановления при обновлении версий.
Предварительные требования
- Установленный .NET SDK (обычно .NET 8.0 SDK или новее, либо версия, совместимая с целевым решением)
dotnetCLI доступен вPATHjq(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 [<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
Обновление версий пакетов
- Проверьте существование версии: через
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>" } - Определите управление версиями: ищите
Directory.Packages.propsв корне решения. Если есть — версии управляются там через<PackageVersion Include="Package.Name" Version="1.2.3" />. Если нет — проверьте отдельные.csprojна<PackageReference Include="Package.Name" Version="1.2.3" />. - Примените изменения: измените найденный файл новой строкой версии.
- Проверьте стабильность: выполните
dotnet restoreпо проекту или решению. При ошибках откатите изменение и разберитесь.
Примеры
Пользователь: «Добавь Serilog в проект WebApi» → Действие: dotnet add src/WebApi/WebApi.csproj package Serilog.
Пользователь: «Обнови Newtonsoft.Json до 13.0.3 во всём решении» → Действие: 1) проверить, что 13.0.3 существует; 2) найти, где определена (напр. Directory.Packages.props); 3) отредактировать файл; 4) выполнить dotnet restore.
