# dotnet-maui-9-to-dotnet-maui-10-upgrade

Помогает обновить проект .NET MAUI с 9 на 10 версию: правит смену TargetFramework, замену MessagingCenter на WeakReferenceMessenger и переезд с ListView на CollectionView.

- правило · `type=rule` · GitHub Copilot · ★ 40418
- Автор: github · официальный репозиторий GitHub
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/github/awesome-copilot/tree/HEAD/instructions/dotnet-maui-9-to-dotnet-maui-10-upgrade.instructions.md
- Обновлён: 2026-10-23
- HTML: https://affpapa.org/nevibecode/rules/dotnet-maui-9-to-dotnet-maui-10-upgrade

## Что делает

Правило применяется к файлам `*.csproj`, `*.cs` и `*.xaml`. Оно ведёт миграцию по шагам. Сначала меняется `TargetFramework` на `net10.0`. Для сборки в Linux или GitHub Codespaces добавляются условия, отсекающие платформы Apple.

Основной упор сделан на устранение ошибок компиляции. В .NET 10 класс `MessagingCenter` стал закрытым (`internal`). Правило переводит вызовы на `WeakReferenceMessenger` из пакета `CommunityToolkit.Mvvm` 8.3.0 с созданием отдельных классов сообщений. При этом учитывается смена поведения: повторная регистрация одного типа сообщения на получателе выбрасывает `InvalidOperationException`.

Инструкция также находит устаревшие `ListView` и `TableView` для замены на `CollectionView`. Под замену попадают старые анимации, `DisplayAlert` и свойство `Page.IsBusy`. Без обновления `CommunityToolkit.Maui` минимум до версии 12.3.0 проект на .NET 10 не скомпилируется.

## Установка

### GitHub Copilot (родная платформа)

**Вручную: положить файлы**
- Файл: `.github/instructions/dotnet-maui-9-to-dotnet-maui-10-upgrade.instructions.md` — Поле applyTo задаёт, к каким файлам применять

### Claude Code

**Вручную: положить файлы**
- Файл: `.claude/rules/dotnet-maui-9-to-dotnet-maui-10-upgrade.md` — Поле paths во frontmatter ограничивает файлы: applyTo из источника → paths

### Codex

**AGENTS.md**
- Codex читает AGENTS.md: вставьте текст правила туда

### Cursor

**Вручную: положить файлы**
- Файл: `.cursor/rules/dotnet-maui-9-to-dotnet-maui-10-upgrade.mdc` — Во frontmatter: description, globs, alwaysApply. applyTo из источника → globs, иначе правило само не подключится

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/rules/dotnet-maui-9-to-dotnet-maui-10-upgrade.md`

### Cline

**Вручную: положить файлы**
- Файл: `.clinerules/dotnet-maui-9-to-dotnet-maui-10-upgrade.md`

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/github/awesome-copilot/tree/HEAD/instructions/dotnet-maui-9-to-dotnet-maui-10-upgrade.instructions.md

## Когда брать
- перевести csproj на целевой фреймворк net10.0
- заменить закрытый MessagingCenter на WeakReferenceMessenger
- настроить сборку проекта под Linux и Codespaces без сбоев из-за таргетов iOS
- спланировать миграцию устаревших ListView и TableView на CollectionView

## Примеры запросов агенту
- Обнови проект MAUI на .NET 10 и проверь несовместимые вызовы MessagingCenter
- Сконфигурируй csproj для net10.0 с поддержкой сборки на Linux в Codespaces
- Перепиши устаревшие ListView на CollectionView по правилам миграции на .NET 10

Из того же набора: [github/awesome-copilot](https://affpapa.org/nevibecode/by/github/awesome-copilot.md) — 770 карточек

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

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