Модернизация после обновления до .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.CompatibilityNuGet. Он добавляет около 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 в качестве поставщика конфигурации:

  1. Удалите пакет или библиотеку System.Configuration.ConfigurationManager NuGet, если на него ссылается обновленное приложение.

  2. Добавление пакета NuGet Microsoft.Extensions.Configuration.Json.

  3. Создайте файл с именем appsettings.json.

    1. Щелкните правой кнопкой мыши файл проекта в окне Обозреватель решений и выберите "Добавить>новый элемент...".
    2. В поле поиска введите json.
    3. Выберите шаблон файла конфигурации JSON JavaScript и задайте имяappsettings.json.
    4. Нажмите кнопку "Добавить ", чтобы добавить новый файл в проект.
  4. Задайте файл appsettings.json для копирования в выходной каталог.

    В окне Обозреватель решений найдите файл appsettings.json и задайте следующие свойства:

    • Действие сборки: содержимое
    • Копирование в выходной каталог: всегда копировать
  5. В коде запуска приложения необходимо загрузить файл параметров.

    Код запуска приложения зависит от типа проекта. Например, приложение 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
    
  6. Обновите остальную часть кода, чтобы использовать новые API конфигурации.

  7. Удалите файл App.config из проекта.

    Внимание

    Убедитесь, что приложение работает правильно без файла app.config . Создайте резервную копию файла App.config с помощью системы управления версиями или скопируйте файл в другом месте. После тщательного тестирования приложения удалите файл конфигурации App.config .