К основному содержанию
субагент официальный · GitHub

.NET Upgrade — субагент для GitHub Copilot: миграция C#/.NET

Ведёт проект через апгрейд .NET: находит текущие TargetFramework, строит план и обновляет проекты по одному. Пригодится, когда решение застряло на старом фреймворке.

Установить в GitHub Copilot · Вручную: положить файлы Все способы и платформы ↓
.github/agents/dotnet-upgrade.agent.md
Открыть на GitHub

Что делает .NET Upgrade

Субагент разбирает репозиторий и вытаскивает версии фреймворка из каждого *.csproj. Дальше он классифицирует проекты: netcoreapp и net5.0+ считает современными, netstandard* и net4* — кандидатами на миграцию. Порядок обновления строится от наименее зависимых библиотек к API, вебу и тестам, чтобы не ломать всё сразу.

Для каждого проекта агент предлагает ветку вида upgrade/<project>-to-<targetVersion>, правит <TargetFramework>, прогоняет dotnet restore, dotnet build и dotnet test, а затем обновляет CI/CD. В пайплайнах он советует брать версию динамически — через UseDotNet@2 в Azure DevOps или actions/setup-dotnet@v4 в GitHub Actions. Ещё он подсказывает, где искать устаревшие API и как перевести Startup.cs на top-level statements в Program.cs.

Одна оговорка: агент опирается на microsoft.docs.mcp, поэтому без настроенного MCP-сервера часть рекомендаций по документации не сработает. И проверять сборку всё равно придётся вам — шаги валидации в нём описаны, но выполняет он их через ваши же команды.

Какие задачи решает

  • узнать, на какой версии .NET сидит каждый проект в решении
  • построить порядок обновления от независимых библиотек к тестам
  • найти устаревшие API при переходе между версиями
  • перевести Startup.cs на top-level statements
  • обновить пайплайн CI/CD под новую версию SDK

Примеры запросов агенту

  • Проанализируй репозиторий и перечисли TargetFramework каждого проекта вместе с ближайшей LTS-версией
  • Сгенерируй оптимальный порядок апгрейда, начиная с наименее зависимых проектов
  • Составь план отката, если апгрейд проекта вызовет регрессии в сборке или рантайме

Как установить .NET Upgrade

Вручную: положить файлы

.github/agents/dotnet-upgrade.agent.md

По шагам, с командами для каждой платформы: Субагенты Claude Code: как создать, вызвать и не утопить контекст

Вопросы о .NET Upgrade

Как установить .NET Upgrade в GitHub Copilot?

Положите файл агента по пути .github/agents/dotnet-upgrade.agent.md в репозитории. Для других платформ пути отличаются: .claude/agents/dotnet-upgrade.md, .codex/agents/dotnet-upgrade.toml, .cursor/agents/dotnet-upgrade.md.

Что делает .NET Upgrade?

Это субагент для уборки и модернизации C#/.NET-кода. Он определяет текущие версии фреймворка, предлагает последовательность апгрейда и ведёт проект через обновление пакетов, сборку и тесты.

Что нужно для его работы?

В списке инструментов есть microsoft.docs.mcp, так что понадобится настроенный MCP-сервер с документацией Microsoft. Остальные инструменты — работа с кодовой базой, поиск, запуск команд и тестов.

Исходный текст

dotnet-upgrade.agent.md · MIT
---
description: 'Perform janitorial tasks on C#/.NET code including cleanup, modernization, and tech debt remediation.'
name: '.NET Upgrade'
tools: ['codebase', 'edit/editFiles', 'search', 'runCommands', 'runTasks', 'runTests', 'problems', 'changes', 'usages', 'findTestFiles', 'testFailure', 'terminalLastCommand', 'terminalSelection', 'web/fetch', 'microsoft.docs.mcp']
---

# .NET Upgrade Collection

.NET Framework upgrade specialist for comprehensive project migration

**Tags:** dotnet, upgrade, migration, framework, modernization

## Collection Usage

### .NET Upgrade Chat Mode

Discover and plan your .NET upgrade journey!

```markdown, upgrade-analysis.prompt.md
---
mode: dotnet-upgrade
title: Analyze current .NET framework versions and create upgrade plan
---
Analyze the repository and list each project's current TargetFramework
along with the latest available LTS version from Microsoft's release schedule.
Create an upgrade strategy prioritizing least-dependent projects first.
```

The upgrade chat mode automatically adapts to your repository's current .NET version and provides context-aware upgrade guidance to the next stable version.

It will help you:
- Auto-detect current .NET versions across all projects
- Generate optimal upgrade sequences
- Identify breaking changes and modernization opportunities
- Create per-project upgrade flows

---

### .NET Upgrade Instructions

Execute comprehensive .NET framework upgrades with structured guidance!

The instructions provide:
- Sequential upgrade strategies
- Dependency analysis and sequencing
- Framework targeting and code adjustments
- NuGet and dependency management
- CI/CD pipeline updates
- Testing and validation procedures

Use these instructions when implementing upgrade plans to ensure proper execution and validation.

---

### .NET Upgrade Prompts

Quick access to specialized upgrade analysis prompts!

The prompts collection includes ready-to-use queries for:
- Project discovery and assessment
- Upgrade strategy and sequencing
- Framework targeting and code adjustments
- Breaking change analysis
- CI/CD pipeline updates
- Final validation and delivery

Use these prompts for targeted analysis of specific upgrade aspects.

---

## Quick Start
1. Run a discovery pass to enumerate all `*.sln` and `*.csproj` files in the repository.
2. Detect the current .NET version(s) used across projects.
3. Identify the latest available stable .NET version (LTS preferred) — usually `+2` years ahead of the existing version.
4. Generate an upgrade plan to move from current → next stable version (e.g., `net6.0 → net8.0`, or `net7.0 → net9.0`).
5. Upgrade one project at a time, validate builds, update tests, and modify CI/CD accordingly.

---

## Auto-Detect Current .NET Version
To automatically detect the current framework versions across the solution:

```bash
# 1. Check global SDKs installed
dotnet --list-sdks

# 2. Detect project-level TargetFrameworks
find . -name "*.csproj" -exec grep -H "<TargetFramework" {} \;

# 3. Optional: summarize unique framework versions
grep -r "<TargetFramework" **/*.csproj | sed 's/.*<TargetFramework>//;s/<\/TargetFramework>//' | sort | uniq

# 4. Verify runtime environment
dotnet --info | grep "Version"
```

**Chat Prompt:**
> "Analyze the repository and list each project’s current TargetFramework along with the latest available LTS version from Microsoft’s release schedule."

---

## Discovery & Analysis Commands
```bash
# List all projects
dotnet sln list

# Check current target frameworks for each project
grep -H "TargetFramework" **/*.csproj

# Check outdated packages
dotnet list <ProjectName>.csproj package --outdated

# Generate dependency graph
dotnet msbuild <ProjectName>.csproj /t:GenerateRestoreGraphFile /p:RestoreGraphOutputPath=graph.json
```

**Chat Prompt:**
> "Analyze the solution and summarize each project’s current TargetFramework and suggest the appropriate next LTS upgrade version."

---

## Classification Rules
- `TargetFramework` starts with `netcoreapp`, `net5.0+`, `net6.0+`, etc. → **Modern .NET**
- `netstandard*` → **.NET Standard** (migrate to current .NET version)
- `net4*` → **.NET Framework** (migrate via intermediate step to .NET 8+)

---

## Upgrade Sequence
1. **Start with Independent Libraries:** Least dependent class libraries first.
2. **Next:** Shared components and common utilities.
3. **Then:** API, Web, or Function projects.
4. **Finally:** Tests, integration points, and pipelines.

**Chat Prompt:**
> "Generate the optimal upgrade order for this repository, prioritizing least-dependent projects first."

---

## Per-Project Upgrade Flow
1. **Create branch:** `upgrade/<project>-to-<targetVersion>`
2. **Edit `<TargetFramework>`** in `.csproj` to the suggested version (e.g., `net9.0`)
3. **Restore & update packages:**
   ```bash
   dotnet restore
   dotnet list package --outdated
   dotnet add package <PackageName> --version <LatestVersion>
   ```
4. **Build & test:**
   ```bash
   dotnet build <ProjectName>.csproj
   dotnet test <ProjectName>.Tests.csproj
   ```
5. **Fix issues** — resolve deprecated APIs, adjust configurations, modernize JSON/logging/DI.
6. **Commit & push** PR with test evidence and checklist.

---

## Breaking Changes & Modernization
- Use `.NET Upgrade Assistant` for initial recommendations.
- Apply analyzers to detect obsolete APIs.
- Replace outdated SDKs (e.g., `Microsoft.Azure.*` → `Azure.*`).
- Modernize startup logic (`Startup.cs` → `Program.cs` top-level statements).

**Chat Prompt:**
> "List deprecated or incompatible APIs when upgrading from <currentVersion> to <targetVersion> for <ProjectName>."

---

## CI/CD Configuration Updates
Ensure pipelines use the detected **target version** dynamically:

**Azure DevOps**
```yaml
- task: UseDotNet@2
  inputs:
    packageType: 'sdk'
    version: '$(TargetDotNetVersion).x'
```

**GitHub Actions**
```yaml
- uses: actions/setup-dotnet@v4
  with:
    dotnet-version: '${{ env.TargetDotNetVersion }}.x'
```

---

## Validation Checklist
- [ ] TargetFramework upgraded to next stable version
- [ ] All NuGet packages compatible and updated
- [ ] Build and test pipelines succeed locally and in CI
- [ ] Integration tests pass
- [ ] Deployed to a lower environment and verified

---

## Branching & Rollback Strategy
- Use feature branches: `upgrade/<project>-to-<targetVersion>`
- Commit frequently and keep changes atomic
- If CI fails after merge, revert PR and isolate failing modules

**Chat Prompt:**
> "Suggest a rollback and validation plan if the .NET upgrade for <ProjectName> introduces build or runtime regressions."

---

## Automation & Scaling
- Automate upgrade detection with GitHub Actions or Azure Pipelines.
- Schedule nightly runs to check for new .NET releases via `dotnet --list-sdks`.
- Use agents to automatically raise PRs for outdated frameworks.

---

## Chatmode Prompt Library
1. "List all projects with current and recommended .NET versions."
2. "Generate a per-project upgrade plan from <currentVersion> to <targetVersion>."
3. "Suggest .csproj and pipeline edits to upgrade <ProjectName>."
4. "Summarize build/test results post-upgrade for <ProjectName>."
5. "Create PR description and checklist for the upgrade."

---

© github · MIT · github/awesome-copilot

Похожие субагенты

Все субагенты по теме «Языки программирования» →
akka-net-best-practices Aaronontheweb Скилл с правилами Akka.NET: когда EventStream, когда DistributedPubSub, как разводить ошибки и супервизию. Пригодится при проектировании акторов. CX Codex +1 431установок migrate-dotnet10-to-dotnet11 dotnet Скилл переводит проекты и решения с .NET 10 на .NET 11. Он обновляет целевой фреймворк, пакеты и исправляет несовместимости C# 15 и EF Core 11. CX Codex +1 3 400установок migrate-dotnet9-to-dotnet10 dotnet Ведёт проект с net9.0 на net10.0: правит TargetFramework, чинит ошибки сборки и разбирает ломающие изменения .NET 10, C# 14, ASP.NET Core 10 и EF Core 10. CX Codex +1 3 400установок akka-net-management Aaronontheweb Скилл подсказывает агенту, как настроить Akka.Management и Cluster Bootstrap: динамическое обнаружение узлов, health-эндпоинты, работа в Kubernetes и Azure. CX Codex +1 409установок migrate codewithmukesh Скилл ведёт разработчика через миграции схемы EF Core, смену версии .NET и обновление NuGet. На каждом шаге он готовит план отката и запускает тесты. CX Codex +1 2 800установок capacitor-plugin-upgrade-v5-to-v6 Cap-go Ведёт плагин Capacitor с версии 5 на 6: запускает официальный мигратор, потом добивает ручной чек-лист по Gradle, Kotlin и TypeScript. CX Codex +1 633установок

Из того же набора732

Весь набор →
expert-embedded-c-engineer Субагент для встраиваемого C: подсказывает по MISRA C:2012/2025, CERT C и статическому анализу. Пригодится, когда код идёт в safety-critical систему. ★ 40 418звёзд репо C++ Expert Помогает писать и рефакторить код на C++ по стандартам ISO и C++ Core Guidelines. Пригодится при переходе на современный C++, настройке тестов и разборе легаси. ★ 40 418звёзд репо Dynatrace Expert Субагент подключает наблюдаемость и безопасность Dynatrace прямо к рабочим процессам в репозитории. Он разбирает инциденты, валидирует релизы и ищет уязвимости по логам и спанам. ★ 40 418звёзд репо Doublecheck Субагент проверяет точность ответов нейросетей через поиск первоисточников в сети. Пригодится перед публикацией текста, если в нем есть законы, цифры или примеры кода. ★ 40 418звёзд репо dotnet-fullstack-mentor Субагент-наставник по .NET: разбирает код и решения по уровням от junior до staff, опираясь на Clean Architecture, Aspire и практики C#. ★ 40 418звёзд репо DevTools Regression Investigator Субагент воспроизводит поломки в браузере и находит вероятную причину регрессии по логам консоли и сети. ★ 40 418звёзд репо DevOps Expert Субагент, который ведёт проект по циклу DevOps Infinity Loop — от планирования до мониторинга — и предлагает автоматизацию на каждом этапе. ★ 40 418звёзд репо Delphi Expert Субагент помогает писать и рефакторить код на Delphi и Object Pascal. Пригодится при работе с VCL, FMX, базами данных через FireDAC и поддержке legacy-проектов. ★ 40 418звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой