Поделиться через


Что такое модернизация приложений GitHub Copilot — обновление для .NET?

Модернизация приложения GitHub Copilot — обновление для .NET — это мощное расширение Visual Studio, которое работает с вами для обновления проектов до более новых версий .NET, обновления зависимостей и применения исправлений кода.

Модернизация приложения GitHub Copilot распространяется как расширение Visual Studio и является интерактивным процессом обновления.

Предпосылки

(При изменении подписок необходимо перезапустить Visual Studio.)

Инструкции по установке см. в разделе "Установка модернизации приложений GitHub Copilot— обновление для .NET".

Поддерживаемые типы проектов

Модернизация приложений GitHub Copilot поддерживает обновление проектов, закодированных в C#. Поддерживаются следующие типы проектов:

  • ASP.NET и связанные технологии, такие как MVC, Razor Pages, веб-API
  • Blazor
  • Функции Azure
  • Windows Presentation Foundation
  • Windows Forms
  • Библиотеки классов
  • Консольные приложения

Это важно

Текущая версия расширения не поддерживает обновление с .NET Framework до .NET. В этих сценариях используйте помощник по обновлению .NET для миграции в .NET, а затем используйте это средство для модернизации кода.

Варианты обновления

Поддерживаются следующие варианты обновления:

  • Обновление проектов с .NET Core до .NET.
  • Обновите проекты с более старых версий .NET до последней версии.
  • Модернизация базы кода.

Запуск процесса обновления

Первым шагом обновления является создание плана путем взаимодействия с GitHub Copilot. Существует два способа заставить Copilot использовать инструмент:

  • Щелкните правой кнопкой мыши решение или проект и выберите пункт "Обновить" с помощью GitHub Copilot.

    —или—

  • Включите режим агента GitHub Copilot и попросите новый чат Copilot обновить решение или проект.

    Это важно

    После включения режима агента GitHub Copilot установите режим чата в положение Agent и включите средство upgrade_start.

    Окно чата GitHub Copilot. Выпадающее меню

Создание плана

После запуска процесса Copilot анализирует проекты и их зависимости, а затем задает ряд вопросов об обновлении. После ответа на эти вопросы план обновления записывается в виде файла Markdown. Если вы сообщите Copilot продолжить обновление, этот план описывает шаги процесса обновления.

Вы можете изменить план, изменив файл Markdown, чтобы изменить шаги обновления или добавить дополнительный контекст.

Осторожность

План создается на основе межзависимостей проектов. Обновление не будет выполнено, если вы измените план таким образом, что путь миграции не может завершиться. Например, если Project A зависит от Project B и вы удаляете Project B из плана обновления, обновление Project A может завершиться ошибкой.

Следующий фрагмент кода демонстрирует структуру плана:

# .NET 9.0 Upgrade Plan

## Execution Steps

1. Validate that an .NET 9.0 SDK required for this upgrade is installed on the machine and if not, help to get it installed.
2. Ensure that the SDK version specified in global.json files is compatible with the .NET 9.0 upgrade.
3. Upgrade projects to .NET 9.0.
  - 3.1. Upgrade RazorMovie.csproj
  - 3.2. Upgrade RazorMovie.Tests.csproj
4. Run unit tests to validate upgrade in the projects listed below:
  - RazorMovie.Tests.csproj

## Settings

This section contains settings and data used by execution steps.

### Aggregate NuGet packages modifications across all projects

NuGet packages used across all selected projects or their dependencies that need version update in projects that reference them.

| Package Name                                     | Current Version     | New Version | Description              |
|:-------------------------------------------------|:-------------------:|:-----------:|:-------------------------|
| HtmlSanitizer                                    | 7.1.542             | 9.0.884     | Security vulnerability   |
| Microsoft.Data.SqlClient                         | 4.0.5               | 6.0.2       | Deprecated               |
| Microsoft.EntityFrameworkCore.Design             | 6.0.0-rtm.21467.1   | 9.0.5       | Recommended for .NET 9.0 |
| Microsoft.EntityFrameworkCore.SqlServer          | 6.0.0-rc.1.21452.10 | 9.0.5       | Recommended for .NET 9.0 |
| Microsoft.EntityFrameworkCore.Tools              | 6.0.0-rc.1.21452.10 | 9.0.5       | Recommended for .NET 9.0 |
| Microsoft.VisualStudio.Web.CodeGeneration.Design | 6.0.0-rc.1.21464.1  | 9.0.0       | Recommended for .NET 9.0 |

...

Выполнение обновления

Когда план обновления будет готов, сообщите Copilot начать обновление. После запуска процесса обновления Copilot позволяет узнать, что он делает в окне чата, и откроется документ сведений о ходе обновления , в котором перечислены состояния каждого шага. Если возникает проблема, Copilot приостанавливает свою работу и просит ваших указаний или помощи для решения этих проблем.

Рабочий опыт со средством отличается в зависимости от того, включен ли режим агента Copilot.

  • Режим агента Copilot

    Если режим агента Copilot включен и используется, Copilot пытается определить причину проблемы и применить исправление. Если Copilot не может, кажется, исправить проблему, он просит вашей помощи. Когда вы вмешиваетесь, Copilot учится из внесенных изменений и пытается автоматически применить их к вам, если проблема возникает снова.

  • Режим коррекции Copilot

    Режим исправления Copilot используется, если режим агента отключен или не активирован. Copilot сообщает о проблемах, которые он находит и направляет вас через необходимые исправления. Вы ответственны за выполнение фактических изменений кода, а затем это средство проверяет эти исправления.

Каждый основной шаг процесса обновления фиксируется в локальном репозитории Git.

Результаты модернизации

После завершения обновления создается отчет, описывающий каждый шаг обновления. Средство создает фиксацию Git для каждой части процесса обновления, чтобы можно было легко откатить изменения или получить подробные сведения о том, что изменилось. Отчет содержит хэши коммитов Git.

Отчет также содержит раздел "Дальнейшие действия ", описывающий шаги, которые необходимо предпринять после завершения обновления. В следующем примере показан отчет о завершенном обновлении, содержавший сбой теста.

# .NET 9 Upgrade Report

## Project modifications

| Project name                                   | Old Target Framework    | New Target Framework         | Commits                   |
|:-----------------------------------------------|:-----------------------:|:----------------------------:|---------------------------|
| RazorMovie                                     |   net6.0                | net9.0                       | af8cf633, aa61a18d        |
| MvcMovie                                       |   net6.0                | net9.0                       | cc8c9015                  |
| WpfMovie                                       |   net6.0-windows        | net9.0-windows               | 9c4b13f9                  |
| RazorMovie.Tests                               |   net6.0                | net9.0                       | b8d85e97                  |
| MvcMovie.Tests                                 |   net6.0                | net9.0                       | b8d85e97                  |
| WpfMovie.Tests                                 |   net6.0-windows        | net9.0-windows7.0            | b8d85e97                  |

## NuGet Packages

| Package Name                                     | Old Version         | New Version | Commit Id |
|:-------------------------------------------------|:-------------------:|:-----------:|-----------|
| HtmlSanitizer                                    | 7.1.542             | 9.0.884     | af8cf633  |
| Microsoft.Data.SqlClient                         | 4.0.5               | 6.0.2       | bf8deeac  |
| Microsoft.EntityFrameworkCore.Design             | 6.0.0-rtm.21467.1   | 9.0.5       | bf8deeac  |
| Microsoft.EntityFrameworkCore.SqlServer          | 6.0.0-rc.1.21452.10 | 9.0.5       | bf8deeac  |
| Microsoft.EntityFrameworkCore.Tools              | 6.0.0-rc.1.21452.10 | 9.0.5       | bf8deeac  |
| Microsoft.VisualStudio.Web.CodeGeneration.Design | 6.0.0-rc.1.21464.1  | 9.0.0       | bf8deeac  |

## All commits

| Commit ID | Description                                             |
|:----------|:--------------------------------------------------------|
| af8cf633  | Update HtmlSanitizer package in RazorMovie.csproj       |
| aa61a18d  | Upgrade target framework in RazorMovie.csproj           |
| cc8c9015  | Upgrade to .NET 9 and update dependencies               |
| bf8deeac  | Update package references in MvcMovie.csproj            |
| 9c4b13f9  | Update WpfMovie.csproj to target .NET 9.0               |
| b8d85e97  | Update test projects to .NET 9 and enhance dependencies |

## Test Results

| Project Name           | Passed | Failed | Skipped |
|:-----------------------|:------:|:------:|:-------:|
| RazorMovie.Tests       |   0    |   0    |    0    |
| MvcMovie.Tests         |   2    |   0    |    0    |
| WpfMovie.Tests         |   6    |   1    |    0    |

## Next steps

- Review the test results and address the single failing test in `WpfMovie.Tests`.
- Ensure all updated NuGet packages are compatible with your application.
- Leverage new features and improvements in .NET 9.0 for your projects.

Телеметрия

Средство собирает только данные о типах проектов, намерениях обновления и длительности обновления. Данные собираются и агрегируются с помощью Visual Studio и не содержат никаких сведений, доступных для идентификации пользователя. Дополнительные сведения о политике конфиденциальности Майкрософт см. в программе улучшения качества работы с клиентами Visual Studio.