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 verktyget .NET Upgrade Assistant för att uppgradera appen 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å din nya version 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 Compatibility Pack för att portkoda 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 en modern ersättning för webbläsarkomponenter.
App.config
.NET Framework använder App.config-filen för att läsa in inställningar för din app, till exempel anslutningssträngar 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 Visual Studio-tillägget gör det inte.
Tips
Om du inte vill använda appsettings.json-filen kan du lägga till System.Configuration.ConfigurationManager
NuGet-paketet i din app och koden kompileras och använder filen App.config.
Även om appsettings.json är det moderna sättet att lagra och hämta inställningar och anslutningssträngar har appen fortfarande kod som använder App.config-filen. När appen migrerades lades System.Configuration.ConfigurationManager
NuGet-paketet till i projektet så att koden med hjälp av 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:
Ta bort
System.Configuration.ConfigurationManager
NuGet-paket eller -bibliotek om det refereras av din uppgraderade app.Lägg till
Microsoft.Extensions.Configuration.Json
NuGet-paketet.Skapa en fil med namnet appsettings.json.
- Högerklicka på projektfilen i Solution Explorer och välj Lägg till>nytt objekt.
- I sökrutan anger du
json
. - Välj mallen JavaScript JSON-konfigurationsfil och ange Name till appsettings.json.
- Tryck på Lägg till för att lägga till den nya filen i projektet.
Ange den appsettings.json filen som ska kopieras till utdatakatalogen.
I Solution Explorerletar du upp filen appsettings.json och anger följande Egenskaper:
- Byggåtgärd: Innehåll
- Kopiera till utdatakatalog: Kopiera alltid
I startkoden för din app måste du läsa in inställningsfilen.
Startkoden för din app varierar beroende på projekttyp. Till exempel använder en WPF-app
App.xaml.cs
-filen för global installation och en Windows Forms-app använderProgram.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 appen. - Under starten tilldelar du en instans till den medlemmen.
I följande exempel skapas en medlem med namnet
Config
, tilldelar den en instans i metodenMain
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
- Skapa en
Uppdatera resten av koden för att använda de nya konfigurations-API:erna.
Ta bort App.config-filen från projektet.
Försiktighet
Kontrollera att appen körs korrekt utan filen App.config. Säkerhetskopiera App.config-filen via källkontroll eller genom att kopiera filen någon annanstans. När du har testat appen noggrant tar du bort filen App.config.