Modernisieren nach dem Upgrade von .NET Framework auf .NET
In diesem Artikel erfahren Sie mehr über verschiedene Möglichkeiten, wie Sie Ihre App modernisieren können, nachdem sie von .NET Framework auf .NET aktualisiert wurde. Verwenden Sie den .NET-Upgrade-Assistenten Tool, um Ihre App auf .NET zu aktualisieren.
Fehlende APIs
Beim Upgrade einer .NET Framework-App haben Sie wahrscheinlich einige Inkompatibilitäten. Dies liegt daran, dass .NET Framework eine Nur-Windows-Technologie ist und .NET eine plattformübergreifende Technologie ist. Einige Bibliotheken existieren nicht. .NET stellt z. B. keine sofort einsatzbereiten APIs für den Zugriff auf die Windows-Registrierung wie .NET Framework bereit. Unterstützung für die Windows-Registrierung wird vom Microsoft.Win32.Registry
NuGet-Paket bereitgestellt. Viele .NET Framework-spezifische Bibliotheken wurden zu .NET oder .NET Standard portiert und werden auf NuGet gehostet. Wenn Sie einen fehlenden Verweis in Ihrem Projekt finden, suchen Sie NuGet.
Windows Compatibility Pack
Wenn Sie nach der Migration einige Abhängigkeiten von .NET Framework-APIs haben, die in Ihrer neuen Version von .NET nicht unterstützt werden, finden Sie diese möglicherweise im Microsoft.Windows.Compatibility
NuGet-Paket. Es fügt ihrem .NET-Projekt rund 20.000 APIs hinzu, wodurch der für Ihr Projekt verfügbare API-Satz erheblich erhöht wird. Zu diesen APIs gehören Windows-exklusive APIs, wie die Windows-Verwaltungsinstrumentation (WMI) und den Windows-Ereignisprotokolldienst. Weitere Informationen finden Sie unter Verwenden des Windows Compatibility Packs zum Portieren von Code zu .NET.
Webbrowser-Steuerelement
Projekte, die auf eine Windows-Desktoptechnologie abzielen, z. B. Windows Presentation Foundation oder Windows Forms, können ein Webbrowser-Steuerelement enthalten. Das bereitgestellte Webbrowser-Steuerelement wurde wahrscheinlich vor HTML5 und anderen modernen Webtechnologien entworfen und gilt als veraltet. Microsoft veröffentlicht das Microsoft.Web.WebView2
NuGet-Paket als ersatz für moderne Webbrowsersteuerelemente.
App.config
.NET Framework verwendet die App.config Datei zum Laden von Einstellungen für Ihre App, z. B. Verbindungszeichenfolgen und Konfiguration des Protokollanbieters. Moderne .NET verwendet die appsettings.json-Datei für App-Einstellungen. Die CLI-Version des Upgrade-Assistenten verarbeitet die Konvertierung von App.config-Dateien in appsettings.json. Jedoch bearbeitet die Visual Studio-Erweiterung dies nicht.
Tipp
Wenn Sie die appsettings.json-Datei nicht verwenden möchten, können Sie das System.Configuration.ConfigurationManager
NuGet-Paket zu Ihrer App hinzufügen, und Ihr Code kompiliert und verwendet die App.config Datei.
Obwohl appsettings.json die moderne Methode zum Speichern und Abrufen von Einstellungen und Verbindungszeichenfolgen ist, verfügt Ihre App weiterhin über Code, der die App.config Datei verwendet. Beim Migrieren der App wurde dem Projekt das System.Configuration.ConfigurationManager
NuGet-Paket hinzugefügt, sodass Ihr Code mit der App.config Datei weiterhin kompiliert wird.
Beim Upgrade von Bibliotheken auf .NET modernisieren sie, indem sie appsettings.json anstelle von App.configunterstützen. Beispielsweise verwenden Protokollierungsanbieter in .NET Framework, die für .NET 6+ aktualisiert wurden, nicht mehr App.config für Einstellungen. Es ist gut, dass Sie deren Richtung folgen und sich auch von der Verwendung von App.configwegbewegen.
Unterstützung für appsettings.json wird vom Microsoft.Extensions.Configuration
NuGet-Paket bereitgestellt.
Führen Sie die folgenden Schritte aus, um die datei appsettings.json als Konfigurationsanbieter zu verwenden:
Entfernen Sie das
System.Configuration.ConfigurationManager
NuGet-Paket oder die NuGet-Bibliothek, wenn darauf von der aktualisierten App verwiesen wird.Fügen Sie das
Microsoft.Extensions.Configuration.Json
NuGet-Paket hinzu.Erstellen Sie eine Datei mit dem Namen appsettings.json.
- Klicken Sie mit der rechten Maustaste auf die Projektdatei im Projektmappen-Explorer, und wählen Sie >Neues Element hinzufügenaus.
- Geben Sie im Suchfeld
json
ein. - Wählen Sie die Vorlage JavaScript-JSON-Konfigurationsdateivorlage aus, und legen Sie den Namen auf appsettings.json fest.
- Drücken Sie Hinzufügen, um die neue Datei zum Projekt hinzuzufügen.
Legen Sie die appsettings.json Datei fest, die in das Ausgabeverzeichnis kopiert werden soll.
Suchen Sie im Projektmappen-Explorerdie datei appsettings.json, und legen Sie die folgenden Eigenschaftenfest:
- Build Action: Inhalt
- In Ausgabeverzeichnis kopieren: Immer kopieren
Im Startcode Ihrer App müssen Sie die Einstellungsdatei laden.
Der Startcode für Ihre App variiert je nach Projekttyp. Beispielsweise verwendet eine WPF-App die
App.xaml.cs
-Datei für die globale Einrichtung und eine Windows Forms-App verwendet dieProgram.Main
-Methode für den Start. Unabhängig davon müssen Sie beim Start zwei Dinge ausführen:- Erstellen Sie ein
internal static
-Member (Friend Shared
in Visual Basic), auf das von überall in Ihrer App aus zugegriffen werden kann. - Weisen Sie dem Mitglied während des Starts eine Instanz zu.
Im folgenden Beispiel wird ein Element namens
Config
erstellt, ihm eine Instanz in derMain
-Methode zugewiesen und eine Verbindungszeichenfolge geladen: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
- Erstellen Sie ein
Aktualisieren Sie den Rest Ihres Codes, um die neuen Konfigurations-APIs zu verwenden.
Löschen Sie die App.config Datei aus dem Projekt.
Vorsicht
Stellen Sie sicher, dass Ihre App ordnungsgemäß ohne die App.config Datei ausgeführt wird. Sichern Sie die App.config Datei über die Quellcodeverwaltung oder kopieren Sie die Datei an anderer Stelle. Nachdem Sie Ihre App gründlich getestet haben, löschen Sie die App.config Datei.