Modernisieren nach dem Upgrade von .NET Framework auf .NET
In diesem Artikel erfahren Sie, wie Sie Ihre App nach einem Upgrade von .NET Framework auf .NET modernisieren können. Verwenden Sie den .NET-Upgrade-Assistenten, um ein Upgrade Ihrer App auf .NET durchzuführen.
Fehlende APIs
Beim Upgrade einer .NET Framework-App treten sehr wahrscheinlich einige Inkompatibilitäten auf. Dies liegt daran, dass .NET Framework eine reine Windows-Technologie ist, während .NET plattformübergreifend ist. Auf einige Bibliotheken trifft dies jedoch nicht zu. Beispielsweise stellt .NET keine sofort einsatzbereiten APIs für den Zugriff auf die Windows-Registrierung bereit, die in .NET Framework verfügbar sind. Die Unterstützung für die Windows-Registrierung wird durch das NuGet-Paket Microsoft.Win32.Registry
bereitgestellt. Viele .NET Framework-spezifische Bibliotheken wurden nach .NET oder .NET Standard portiert und werden auf NuGet gehostet. Wenn Sie in Ihrem Projekt einen fehlenden Verweis finden, suchen Sie in NuGet danach.
Windows Compatibility Pack
Wenn Sie nach der Migration einige Abhängigkeiten von .NET Framework-APIs haben, die von Ihrer neuen Version von .NET nicht unterstützt werden, finden Sie diese möglicherweise im NuGet-Paket Microsoft.Windows.Compatibility
. Es fügt Ihrem .NET-Projekt rund 20.000 APIs hinzu und erweitert damit die für Ihr Projekt verfügbaren APIs erheblich. Zu diesen APIs gehören reine Windows-APIs, z. B. für die Windows-Verwaltungsinstrumentation (WMI) und das Windows-Ereignisprotokoll. Weitere Informationen finden Sie unter Verwenden des Windows Compatibility Pack zum Portieren von Code auf .NET.
Webbrowser-Steuerelement
Projekte, die auf eine Windows-Desktoptechnologie ausgerichtet sind, z. B. Windows Presentation Foundation oder Windows Forms, können ein Webbrowser-Steuerelement enthalten. Dieses bereitgestellte Webbrowser-Steuerelement wurde wahrscheinlich vor HTML5 und anderen modernen Webtechnologien entwickelt und gilt daher als veraltet. Microsoft hat das NuGet-Paket Microsoft.Web.WebView2
als modernen Ersatz für das Webbrowser-Steuerelement veröffentlicht.
App.config
.NET Framework verwendet die Datei App.config zum Laden von Einstellungen für Ihre App (z. B. Verbindungszeichenfolgen und die Konfiguration von Protokollierungsanbietern). Das moderne .NET verwendet jetzt die Datei appsettings.json für App-Einstellungen. Die CLI-Version des Upgrade-Assistenten konvertiert App.config-Dateien in appsettings.json-Dateien, die Visual Studio-Erweiterung jedoch nicht.
Tipp
Wenn Sie die Datei appsettings.json nicht verwenden möchten, können Sie Ihrer App das NuGet-Paket System.Configuration.ConfigurationManager
hinzufügen. Ihr Code kompiliert und verwendet dann die Datei App.config.
Obwohl appsettings.json die moderne Methode zum Speichern und Abrufen von Einstellungen und Verbindungszeichenfolgen ist, enthält Ihre App weiterhin Code, der die Datei App.config verwendet. Während der Migration Ihrer App wurde dem Projekt das NuGet-Paket System.Configuration.ConfigurationManager
hinzugefügt, sodass Code, der weiterhin die Datei App.config verwendet, kompiliert werden kann.
Bibliotheken werden beim Upgrade auf .NET durch die Unterstützung von appsettings.json anstelle von App.config modernisiert. Beispielsweise verwenden Protokollierungsanbieter in .NET Framework, die auf .NET 6 und höher aktualisiert wurden, App.config nicht mehr für Einstellungen. Sie sollten diesem Beispiel folgen und App.config ebenfalls nicht mehr verwenden.
Die Unterstützung für appsettings.json wird über das NuGet-Paket Microsoft.Extensions.Configuration
bereitgestellt.
Führen Sie die folgenden Schritte aus, um die Datei appsettings.json als Konfigurationsanbieter zu verwenden:
Entfernen Sie das NuGet-Paket
System.Configuration.ConfigurationManager
oder die Bibliothek, wenn darauf von Ihrer aktualisierten App verwiesen wird.Fügen Sie das NuGet-Paket
Microsoft.Extensions.Configuration.Json
hinzu.Erstellen Sie eine Datei mit dem Namen appsettings.json.
- Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Projektdatei, und wählen Sie Hinzufügen>Neues Element aus.
- Geben Sie im Suchfeld
json
ein. - Wählen Sie die Vorlage JavaScript-JSON-Konfigurationsdateivorlage aus, und legen Sie den Namen auf appsettings.json fest.
- Wählen Sie Hinzufügen aus, um die neue Datei im Projekt hinzuzufügen.
Legen Sie die Datei appsettings.json zum Kopieren in das Ausgabeverzeichnis fest.
Suchen Sie im Projektmappen-Explorer nach der Datei appsettings.json, und legen Sie die folgenden Eigenschaften fest:
- Buildvorgang: Inhalt
- In Ausgabeverzeichnis kopieren: Immer kopieren
Sie müssen die Einstellungsdatei im Startcode Ihrer App laden.
Der Startcode für Ihre App variiert je nach Projekttyp. Beispielsweise verwendet eine WPF-App die Datei
App.xaml.cs
für die globale Einrichtung, während eine Windows Forms-App dieProgram.Main
-Methode für den Start nutzt. Unabhängig davon müssen Sie beim Start zwei Dinge erledigen:- Erstellen Sie einen
internal static
-Member (Friend Shared
in Visual Basic), auf den von überall in Ihrer App aus zugegriffen werden kann. - Weisen Sie während des Startvorgangs diesem Member eine Instanz zu.
Im folgenden Beispiel wird ein Member namens
Config
erstellt, dem eine Instanz derMain
-Methode zugewiesen und für den eine Verbindungszeichenfolge geladen wird: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 einen
Aktualisieren Sie den restlichen Code, damit die neuen Konfigurations-APIs verwendet werden.
Löschen Sie die App.config-Datei aus dem Projekt.
Achtung
Stellen Sie sicher, dass Ihre App ohne die Datei App.config ordnungsgemäß ausgeführt wird. Sichern Sie die Datei App.config über die Quellcodeverwaltung oder durch Kopieren der Datei an einen anderen Speicherort. Nachdem Sie Ihre App gründlich getestet haben, löschen Sie die Datei App.config.