Dela via


Modernisera efter uppgradering till .NET från .NET Framework

I den här artikeln får du lära dig om olika sätt att modernisera din app när den har uppgraderats från .NET Framework till .NET. Använd .NET Upgrade Assistant-verktyget för att uppgradera din app till .NET.

API:er saknas

När du uppgraderar en .NET Framework-app har du förmodligen vissa inkompatibiliteter. Detta beror på att .NET Framework är en teknik endast för Windows och .NET är en plattformsoberoende teknik. Vissa bibliotek är det inte. .NET tillhandahåller till exempel inte färdiga API:er för åtkomst till Windows-registret som .NET Framework gjorde. Stöd för Windows-registret tillhandahålls av Microsoft.Win32.Registry NuGet-paketet. Många .NET Framework-specifika bibliotek har portats till .NET eller .NET Standard och finns på NuGet. Om du hittar en referens som saknas i projektet söker du efter NuGet.

Windows-kompatibilitetspaket

Om du efter migreringen har vissa beroenden för .NET Framework-API:er som inte stöds på den nya versionen av .NET kan du hitta dem i Microsoft.Windows.Compatibility NuGet-paketet. Det lägger till cirka 20 000 API:er till ditt .NET-projekt, vilket avsevärt ökar API-uppsättningen som är tillgänglig för projektet. Dessa API:er omfattar endast Windows-API:er, till exempel de som är relaterade till Windows Management Instrumentation (WMI) och Windows EventLog. Mer information finns i Använda Windows-kompatibilitetspaketet för att portera kod till .NET

Webbläsarkontroll

Projekt som är inriktade på en Windows-skrivbordsteknik, till exempel Windows Presentation Foundation eller Windows Forms, kan innehålla en webbläsarkontroll. Webbläsarkontrollen som tillhandahölls utformades troligen före HTML5 och andra moderna webbtekniker och anses vara föråldrad. Microsoft publicerar Microsoft.Web.WebView2 NuGet-paketet som modern webbläsarkontrollersättning.

App.config

.NET Framework använder filen App.config för att läsa in inställningar för din app, till exempel anslutningssträng och konfiguration av loggprovider. Modern .NET använder appsettings.json-filen för appinställningar. CLI-versionen av uppgraderingsassistenten hanterar konvertering av App.config-filer till appsettings.json, men det gör inte Visual Studio-tillägget.

Dricks

Om du inte vill använda filen appsettings.json kan du lägga till System.Configuration.ConfigurationManager NuGet-paketet i din app så kompilerar och använder koden App.config-filen .

Även om appsettings.json är det moderna sättet att lagra och hämta inställningar och anslutningssträng har appen fortfarande kod som använder App.config-filen. När appen migrerades System.Configuration.ConfigurationManager lades NuGet-paketet till i projektet så att koden med app.config-filen fortsätter att kompileras.

När biblioteken uppgraderar till .NET moderniseras de genom att stödja appsettings.json i stället för App.config. Loggningsproviders i .NET Framework som har uppgraderats för .NET 6+ använder till exempel inte längre App.config för inställningar. Det är bra för dig att följa deras riktning och även gå bort från att använda App.config.

Stöd för appsettings.json tillhandahålls av Microsoft.Extensions.Configuration NuGet-paketet.

Utför följande steg för att använda appsettings.json-filen som konfigurationsprovider:

  1. Ta bort NuGet-paketet System.Configuration.ConfigurationManager eller biblioteket om det refereras av din uppgraderade app.

  2. Lägg till NuGet-paketet Microsoft.Extensions.Configuration.Json .

  3. Skapa en fil med namnet appsettings.json.

    1. Högerklicka på projektfilen i Solution Explorer-fönstret och välj Lägg till>nytt objekt....
    2. Skriv json i sökrutan.
    3. Välj mallen JavaScript JSON-konfigurationsfil och ange Namnet till appsettings.json.
    4. Tryck på Lägg till för att lägga till den nya filen i projektet.
  4. Ange den appsettings.json fil som ska kopieras till utdatakatalogen.

    I fönstret Solution Explorer letar du upp filen appsettings.json och anger följande egenskaper:

    • Byggåtgärd: Innehåll
    • Kopiera till utdatakatalog: Kopiera alltid
  5. I startkoden för din app måste du läsa in inställningsfilen.

    Startkoden för din app varierar beroende på projekttyp. En WPF-app använder App.xaml.cs till exempel filen för global installation och en Windows Forms-app använder Program.Main metoden för start. Oavsett måste du göra två saker vid start:

    • Skapa en internal static (Friend Shared i Visual Basic) medlem som kan nås var som helst i din app.
    • Under starten tilldelar du en instans till den medlemmen.

    I följande exempel skapas en medlem med namnet Config, tilldelar den en instans i Main metoden och läser in en anslutningssträng:

    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. Uppdatera resten av koden för att använda de nya konfigurations-API:erna.

  7. Ta bort filen App.config från projektet.

    Varning

    Kontrollera att appen körs korrekt utan App.config-filen . Säkerhetskopiera Filen App.config via källkontroll eller genom att kopiera filen någon annanstans. När du har testat appen noggrant tar du bort filen App.config .