Миграция из Windows Forms платформа .NET Framework в .NET
В этой статье описывается обновление классического приложения Windows Forms до .NET с помощью помощника по обновлению .NET. Windows Forms остается платформой только для Windows, несмотря на то, что .NET является кроссплатформенной технологией.
Необходимые компоненты
- Операционная система Windows.
- Скачайте и извлеките демонстрационную версию приложения, используемого в этой статье.
- Visual Studio 2022 версии 17.12 или более поздней версии для .NET 9.
- Расширение помощника по обновлению .NET для Visual Studio.
Оценка
Перед выполнением обновления необходимо проанализировать проекты. Выполнение анализа кода для проектов с помощью помощника по обновлению .NET создает отчет, на который можно ссылаться, чтобы определить потенциальные блокировщики миграции.
Чтобы проанализировать проекты и создать отчет, щелкните правой кнопкой мыши файл решения в Обозреватель решений и выберите "Обновить". Дополнительные сведения о выполнении анализа см. в статье "Анализ проектов с помощью помощника по обновлению .NET".
Перенос зависимостей
Если вы обновляете несколько проектов, начните с проектов, которые не имеют зависимостей. В примере "Игра сопоставления" проект MatchingGame зависит от библиотеки MatchingGame.Logic, поэтому сначала следует обновить MatchingGame.Logic.
Совет
Обязательно создайте резервную копию кода, например в системе управления версиями или копии.
Чтобы обновить проект в Visual Studio, выполните следующие действия.
Щелкните правой кнопкой мыши проект MatchingGame.Logic в окне Обозреватель решений и выберите "Обновить".
Откроется новая вкладка, которая запрашивает выбор нужного обновления.
Выберите обновление проекта на месте.
Затем выберите целевую платформу.
На основе типа проекта, который вы обновляете, вы предоставляете различные варианты. .NET Standard 2.0 можно использовать как платформа .NET Framework, так и .NET. Это хороший выбор, если библиотека не полагается на классические технологии, такие как Windows Forms, что делает этот проект.
Выберите .NET 9.0 и нажмите кнопку "Далее".
Дерево отображается со всеми артефактами, связанными с проектом, такими как файлы кода и библиотеки. Вы можете обновить отдельные артефакты или весь проект, который используется по умолчанию. Выберите пункт "Обновить", чтобы начать обновление.
После завершения обновления отображаются результаты:
Артефакты с твердым зеленым кругом были обновлены, в то время как пустые зеленые круги пропускались. Пропущенные артефакты означают, что помощник по обновлению не обнаружил ничего для обновления.
Теперь, когда поддержка библиотеки приложения обновлена, обновите основное приложение.
Заметки для проектов Visual Basic
В настоящее время помощник по обновлению .NET не распознает использование System.Configuration
в файле параметров, созданном шаблонами Visual Basic на платформа .NET Framework. Он также не учитывает использование расширенийMy
, используемых в платформа .NET Framework проектах, таких как My.Computer
и My.User
. Эти расширения были удалены в .NET. Из-за этих двух проблем библиотека Visual Basic не будет компилироваться после переноса с помощью помощника по обновлению .NET.
Чтобы устранить эту проблему, проект должен нацелиться на Windows и ссылаться на Windows Forms.
- После завершения миграции дважды щелкните проект MatchingGame.Logic в окне Обозреватель решений.
- Найдите элемент
<Project>/<PropertyGroup>
. - В редакторе XML измените значение
<TargetFramework>
отnet9.0
net9.0-windows
. - Добавьте
<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 ...
Перенос основного проекта
После обновления всех вспомогательных библиотек можно обновить основной проект приложения. В примере приложения существует только один проект библиотеки для обновления, который был обновлен в предыдущем разделе.
- Щелкните правой кнопкой мыши проект MatchingGame в окне Обозреватель решений и выберите "Обновить".
- Выберите обновление проекта на месте.
- Выберите .NET 9.0 для целевой платформы и нажмите кнопку "Далее".
- Оставьте все артефакты выбранными и выберите пункт "Обновить".
После завершения обновления отображаются результаты. Обратите внимание, что в проекте Windows Forms есть символ предупреждения. Развернуть этот элемент и получить дополнительные сведения об этом шаге:
Обратите внимание, что компонент обновления проекта упоминает об изменении шрифта по умолчанию. Так как шрифт может повлиять на макет элемента управления, необходимо проверить каждую форму и пользовательский элемент управления в проекте, чтобы убедиться, что пользовательский интерфейс упорядочен правильно.
Создание чистой сборки
После обновления основного проекта очистите и скомпилируйте его.
- Щелкните правой кнопкой мыши проект MatchingGame в окне Обозреватель решений и выберите "Очистить".
- Щелкните правой кнопкой мыши проект MatchingGame в окне Обозреватель решений и выберите "Сборка".
Если приложение столкнулось с любыми ошибками, их можно найти в окне списка ошибок с рекомендацией по их устранению.
Теперь проект "Пример игры ", соответствующий Windows Forms, обновлен до .NET 9.
Интерфейс после обновления
Если вы переносите приложение из платформа .NET Framework в .NET, ознакомьтесь с обновлением до .NET из статьи платформа .NET Framework.
Связанный контент
Перенос из платформа .NET Framework в .NET.
Руководство по переносу содержит общие сведения о том, что следует учитывать при переносе кода из платформа .NET Framework в .NET. Сложность проектов определяет, сколько усилий придется приложить после первоначальной миграции файлов проекта.
Модернизируйте после обновления до .NET из платформа .NET Framework.
Мир .NET изменился много с платформа .NET Framework. Эта ссылка содержит некоторые сведения о том, как модернизировать приложение после обновления.
.NET Desktop feedback