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


Миграция из Windows Forms платформа .NET Framework в .NET

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

Необходимые компоненты

Оценка

Перед выполнением обновления необходимо проанализировать проекты. Выполнение анализа кода для проектов с помощью помощника по обновлению .NET создает отчет, на который можно ссылаться, чтобы определить потенциальные блокировщики миграции.

Чтобы проанализировать проекты и создать отчет, щелкните правой кнопкой мыши файл решения в Обозреватель решений и выберите "Обновить". Дополнительные сведения о выполнении анализа см. в статье "Анализ проектов с помощью помощника по обновлению .NET".

Перенос зависимостей

Если вы обновляете несколько проектов, начните с проектов, которые не имеют зависимостей. В примере "Игра сопоставления" проект MatchingGame зависит от библиотеки MatchingGame.Logic, поэтому сначала следует обновить MatchingGame.Logic.

Совет

Обязательно создайте резервную копию кода, например в системе управления версиями или копии.

Чтобы обновить проект в Visual Studio, выполните следующие действия.

  1. Щелкните правой кнопкой мыши проект MatchingGame.Logic в окне Обозреватель решений и выберите "Обновить".

    Снимок экрана: пункт меню помощника по обновлению .NET в Visual Studio.

    Откроется новая вкладка, которая запрашивает выбор нужного обновления.

  2. Выберите обновление проекта на месте.

    Снимок экрана: вкладка помощника по обновлению .NET. Выделен параметр

  3. Затем выберите целевую платформу.

    На основе типа проекта, который вы обновляете, вы предоставляете различные варианты. .NET Standard 2.0 можно использовать как платформа .NET Framework, так и .NET. Это хороший выбор, если библиотека не полагается на классические технологии, такие как Windows Forms, что делает этот проект.

    Выберите .NET 9.0 и нажмите кнопку "Далее".

    Снимок экрана помощника по обновлению .NET. Запрос целевой платформы открыт, а .NET 8 выделен вместе с кнопкой

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

    Снимок экрана помощника по обновлению .NET. Страница

  5. После завершения обновления отображаются результаты:

    Снимок экрана: вкладка результатов обновления помощника по обновлению .NET, на которой показаны перенесенные элементы из проекта.

    Артефакты с твердым зеленым кругом были обновлены, в то время как пустые зеленые круги пропускались. Пропущенные артефакты означают, что помощник по обновлению не обнаружил ничего для обновления.

Теперь, когда поддержка библиотеки приложения обновлена, обновите основное приложение.

Заметки для проектов Visual Basic

В настоящее время помощник по обновлению .NET не распознает использование System.Configuration в файле параметров, созданном шаблонами Visual Basic на платформа .NET Framework. Он также не учитывает использование расширенийMy, используемых в платформа .NET Framework проектах, таких как My.Computer и My.User. Эти расширения были удалены в .NET. Из-за этих двух проблем библиотека Visual Basic не будет компилироваться после переноса с помощью помощника по обновлению .NET.

Чтобы устранить эту проблему, проект должен нацелиться на Windows и ссылаться на Windows Forms.

  1. После завершения миграции дважды щелкните проект MatchingGame.Logic в окне Обозреватель решений.
  2. Найдите элемент <Project>/<PropertyGroup>.
  3. В редакторе XML измените значение <TargetFramework> от net9.0 net9.0-windows.
  4. Добавьте <UseWindowsForms>true</UseWindowsForms> в строку после <TargetFramework>.

Параметры проекта должны выглядеть следующим образом:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net9.0-windows</TargetFramework>
    <UseWindowsForms>true</UseWindowsForms>
    <OutputType>Library</OutputType>
    <MyType>Windows</MyType>

    ... other settings removed for brevity ...

Перенос основного проекта

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

  1. Щелкните правой кнопкой мыши проект MatchingGame в окне Обозреватель решений и выберите "Обновить".
  2. Выберите обновление проекта на месте.
  3. Выберите .NET 9.0 для целевой платформы и нажмите кнопку "Далее".
  4. Оставьте все артефакты выбранными и выберите пункт "Обновить".

После завершения обновления отображаются результаты. Обратите внимание, что в проекте Windows Forms есть символ предупреждения. Развернуть этот элемент и получить дополнительные сведения об этом шаге:

Снимок экрана: вкладка результатов обновления помощника по обновлению .NET, в которой некоторые элементы результатов имеют символы предупреждения.

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

Создание чистой сборки

После обновления основного проекта очистите и скомпилируйте его.

  1. Щелкните правой кнопкой мыши проект MatchingGame в окне Обозреватель решений и выберите "Очистить".
  2. Щелкните правой кнопкой мыши проект MatchingGame в окне Обозреватель решений и выберите "Сборка".

Если приложение столкнулось с любыми ошибками, их можно найти в окне списка ошибок с рекомендацией по их устранению.

Теперь проект "Пример игры ", соответствующий Windows Forms, обновлен до .NET 9.

Интерфейс после обновления

Если вы переносите приложение из платформа .NET Framework в .NET, ознакомьтесь с обновлением до .NET из статьи платформа .NET Framework.

  • Перенос из платформа .NET Framework в .NET.

    Руководство по переносу содержит общие сведения о том, что следует учитывать при переносе кода из платформа .NET Framework в .NET. Сложность проектов определяет, сколько усилий придется приложить после первоначальной миграции файлов проекта.

  • Модернизируйте после обновления до .NET из платформа .NET Framework.

    Мир .NET изменился много с платформа .NET Framework. Эта ссылка содержит некоторые сведения о том, как модернизировать приложение после обновления.