Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается обновление классического приложения 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