Freigeben über


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:

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

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

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

    1. Klicken Sie mit der rechten Maustaste auf die Projektdatei im Projektmappen-Explorer, und wählen Sie >Neues Element hinzufügenaus.
    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. Drücken Sie Hinzufügen, um die neue Datei zum Projekt hinzuzufügen.
  4. 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
  5. 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 die Program.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 Configerstellt, ihm eine Instanz in der Main-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
    
  6. Aktualisieren Sie den Rest Ihres Codes, um die neuen Konfigurations-APIs zu verwenden.

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