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


Миграция с платформы 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.0net9.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».