Freigeben über


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:

  1. Entfernen Sie das NuGet-Paket System.Configuration.ConfigurationManager oder die Bibliothek, wenn darauf von Ihrer aktualisierten App verwiesen wird.

  2. Fügen Sie das NuGet-Paket Microsoft.Extensions.Configuration.Json hinzu.

  3. Erstellen Sie eine Datei mit dem Namen appsettings.json.

    1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Projektdatei, und wählen Sie Hinzufügen>Neues Element aus.
    2. Geben Sie im Suchfeld jsonein.
    3. Wählen Sie die Vorlage JavaScript-JSON-Konfigurationsdateivorlage aus, und legen Sie den Namen auf appsettings.json fest.
    4. Wählen Sie Hinzufügen aus, um die neue Datei im Projekt hinzuzufügen.
  4. 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
  5. 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 die Program.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 der Main-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
    
  6. Aktualisieren Sie den restlichen Code, damit die neuen Konfigurations-APIs verwendet werden.

  7. 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.