Модернизация после обновления до .NET из платформа .NET Framework
В этой статье вы узнаете о различных способах модернизации приложения после обновления с платформа .NET Framework до .NET. Используйте средство помощника по обновлению .NET для обновления приложения до .NET.
Отсутствующие API
При обновлении приложения платформа .NET Framework у вас, скорее всего, есть некоторые несовместимости. Это связано с тем, что платформа .NET Framework является технологией, доступной только для Windows, и .NET является кроссплатформенной технологией. Некоторые библиотеки не являются. Например, .NET не предоставляет встроенные API для доступа к реестру Windows, например платформа .NET Framework. Поддержка реестра Windows предоставляется пакетом Microsoft.Win32.Registry
NuGet. Многие библиотеки платформа .NET Framework были перенесены в .NET или .NET Standard и размещаются в NuGet. Если в проекте отсутствует ссылка, выполните поиск в NuGet.
пакет обеспечения совместимости с Windows;
Если после миграции у вас есть некоторые зависимости от api платформа .NET Framework, которые не поддерживаются в новой версии .NET, их можно найти в пакете Microsoft.Windows.Compatibility
NuGet. Он добавляет около 20 000 API в проект .NET, значительно увеличив набор API, доступный для вашего проекта. Эти API включают api только для Windows, такие как те, которые связаны с инструментарием управления Windows (WMI) и журналом событий Windows. Дополнительные сведения см. в статье Использование пакета совместимости Windows для переноса кода в .NET
Элемент управления веб-браузером
Проекты, предназначенные для классической технологии Windows, например Windows Presentation Foundation или Windows Forms, могут включать элемент управления веб-браузером. Предоставленный элемент управления веб-браузера, скорее всего, был разработан до HTML5 и других современных веб-технологий и считается устаревшим. Корпорация Майкрософт публикует Microsoft.Web.WebView2
пакет NuGet в качестве замены современного элемента управления веб-браузером.
App.config
платформа .NET Framework использует Файл App.config для загрузки параметров приложения, таких как строка подключения и конфигурация поставщика журналов. Современный .NET использует файл appsettings.json для параметров приложения. Версия ИНТЕРФЕЙСА командной строки помощника по обновлению обрабатывает преобразование файлов app.config в appsettings.json, но расширение Visual Studio не выполняется.
Совет
Если вы не хотите использовать файл appsettings.json , вы можете добавить System.Configuration.ConfigurationManager
пакет NuGet в приложение, и код будет компилировать и использовать файл App.config .
Несмотря на то, что appsettings.json является современным способом хранения и получения параметров и строка подключения, приложение по-прежнему имеет код, использующий файл App.config. Когда приложение было перенесено, пакет NuGet был добавлен в проект, System.Configuration.ConfigurationManager
чтобы код с помощью файла конфигурации App.config продолжал компилироваться.
При обновлении библиотек до .NET они модернизируются, поддерживая appsettings.json вместо App.config. Например, поставщики ведения журналов в платформа .NET Framework, которые были обновлены для .NET 6+, больше не используют App.config для параметров. Это хорошо для вас, чтобы следовать их направлению, а также отходить от использования App.config.
Поддержка appsettings.json предоставляется пакетом Microsoft.Extensions.Configuration
NuGet.
Выполните следующие действия, чтобы использовать файл appsettings.json в качестве поставщика конфигурации:
Удалите пакет или библиотеку
System.Configuration.ConfigurationManager
NuGet, если на него ссылается обновленное приложение.Добавление пакета NuGet
Microsoft.Extensions.Configuration.Json
.Создайте файл с именем appsettings.json.
- Щелкните правой кнопкой мыши файл проекта в окне Обозреватель решений и выберите "Добавить>новый элемент...".
- В поле поиска введите
json
. - Выберите шаблон файла конфигурации JSON JavaScript и задайте имяappsettings.json.
- Нажмите кнопку "Добавить ", чтобы добавить новый файл в проект.
Задайте файл appsettings.json для копирования в выходной каталог.
В окне Обозреватель решений найдите файл appsettings.json и задайте следующие свойства:
- Действие сборки: содержимое
- Копирование в выходной каталог: всегда копировать
В коде запуска приложения необходимо загрузить файл параметров.
Код запуска приложения зависит от типа проекта. Например, приложение WPF использует
App.xaml.cs
файл для глобальной установки, а приложение Windows Forms используетProgram.Main
метод запуска. Независимо от того, необходимо выполнить две задачи при запуске:internal static
Создайте член (Friend Shared
в Visual Basic), к которому можно получить доступ в любом месте приложения.- Во время запуска назначьте экземпляр данному элементу.
В следующем примере создается элемент с именем
Config
, назначается экземпляр в методеMain
и загружается строка подключения:using Microsoft.Extensions.Configuration; internal class Program { internal static IConfiguration Config { get; private set; } private static void Main(string[] args) { Config = new ConfigurationBuilder() .AddJsonFile("appsettings.json") .Build(); // Use the config file to get a connection string string? myConnectionString = Config.GetConnectionString("database"); // Run the rest of your app } }
Imports Microsoft.Extensions.Configuration Module Program Private _config As IConfiguration ' Shared not required since Program is a Module Friend Property Config As IConfiguration Get Return _config End Get Private Set(value As IConfiguration) _config = value End Set End Property Sub Main(args As String()) Config = New ConfigurationBuilder() _ .AddJsonFile("appsettings.json") _ .Build() ' Use the config file to get a connection string Dim myConnectionString As String = Config.GetConnectionString("database") ' Run the rest of your app End Sub End Module
Обновите остальную часть кода, чтобы использовать новые API конфигурации.
Удалите файл App.config из проекта.
Внимание
Убедитесь, что приложение работает правильно без файла app.config . Создайте резервную копию файла App.config с помощью системы управления версиями или скопируйте файл в другом месте. После тщательного тестирования приложения удалите файл конфигурации App.config .