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:
Ta bort NuGet-paketet
System.Configuration.ConfigurationManager
eller biblioteket om det refereras av din uppgraderade app.Lägg till NuGet-paketet
Microsoft.Extensions.Configuration.Json
.Skapa en fil med namnet appsettings.json.
- Högerklicka på projektfilen i Solution Explorer-fönstret och välj Lägg till>nytt objekt....
- Skriv
json
i sökrutan. - Välj mallen JavaScript JSON-konfigurationsfil och ange Namnet till appsettings.json.
- Tryck på Lägg till för att lägga till den nya filen i projektet.
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
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ä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 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 iMain
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
- Skapa en
Uppdatera resten av koden för att använda de nya konfigurations-API:erna.
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 .