Übersicht über den Vorgang der Portierung von .NET Framework zu .NET CoreOverview of the porting process from .NET Framework to .NET Core

Möglicherweise verfügen Sie über Code, der zurzeit im .NET Framework ausgeführt wird und den Sie zu .NET Core portieren möchten.You might have code that currently runs on the .NET Framework that you're interested in porting to .NET Core. Dieser Artikel enthält Folgendes:This article provides:

  • Übersicht über den Portiervorgang.An overview of the porting process.
  • Eine Liste der Tools, die beim Portieren Ihres Codes zu .NET Core nützlich sein können.A list of the tools you may find helpful when you're porting your code to .NET Core.

Übersicht über den PortiervorgangOverview of the porting process

Wir empfehlen die folgende Vorgehensweise, um Ihr Projekt zu .NET Core zu portieren:We recommend you to use the following process when porting your project to .NET Core:

  1. Legen Sie für alle zu portierenden Projekte .NET Framework 4.7.2 oder höher als neues Ziel fest.Retarget all projects you wish to port to target the .NET Framework 4.7.2 or higher.

    Durch diesen Schritt wird sichergestellt, dass Sie API-Alternativen für bestimmte .NET Framework-Ziele verwenden können, falls .NET Core eine bestimmte API nicht unterstützt.This step ensures that you can use API alternatives for .NET Framework-specific targets when .NET Core doesn't support a particular API.

  2. Verwenden Sie den .NET Portability Analyzer, um Ihre Assemblys zu analysieren und zu ermitteln, ob sie zu .NET Core portiert werden können.Use the .NET Portability Analyzer to analyze your assemblies and see if they're portable to .NET Core.

    Das API Portability Analyzer-Tool analysiert Ihre kompilierten Assemblys und generiert einen Bericht.The API Portability Analyzer tool analyzes your compiled assemblies and generates a report. Dieser Bericht zeigt eine allgemeine Übersicht über die Portierbarkeit und eine Aufschlüsselung nach allen von Ihnen verwendeten APIs, die in .NET Core nicht verfügbar sind.This report shows a high-level portability summary and a breakdown of each API you're using that isn't available on NET Core.

  3. Installieren Sie das .NET API-Analysetool in Ihren Projekten, um APIs zu identifizieren, die eine PlatformNotSupportedException für einige Plattformen auslösen, und weitere potenzielle Kompatibilitätsprobleme zu ermitteln.Install the .NET API analyzer into your projects to identify APIs throwing PlatformNotSupportedException on some platforms and some other potential compatibility issues.

    Dieses Tool ähnelt dem Portability Analyzer, analysiert jedoch nicht, ob Elemente in .NET Core kompiliert werden können, sondern, ob Sie eine API auf eine Weise verwenden, die zur Laufzeit eine PlatformNotSupportedException auslöst.This tool is similar to the portability analyzer, but instead of analyzing if things can build on .NET Core, it will analyze if you're using an API in a way that will throw the PlatformNotSupportedException at runtime. Wenn Sie von .NET Framework 4.7.2 oder höher wechseln, ist dies zwar nicht häufig der Fall, aber eine Überprüfung ist dennoch eine gute Idee.Although this isn't common if you're moving from .NET Framework 4.7.2 or higher, it's good to check.

  4. Konvertieren Sie alle packages.config-Abhängigkeiten mit dem Konvertierungstool in Visual Studio in das PackageReference-Format.Convert all of your packages.config dependencies to the PackageReference format with the conversion tool in Visual Studio.

    Zu diesem Schritt gehört auch die Konvertierung von Abhängigkeiten aus dem packages.config-Legacyformat.This step involves converting your dependencies from the legacy packages.config format. packages.config funktioniert in .NET Core nicht, daher ist diese Konvertierung notwendig, wenn Paketabhängigkeiten vorhanden sind.packages.config doesn't work on .NET Core, so this conversion is required if you have package dependencies.

  5. Erstellen Sie neue Projekte für .NET Core, und kopieren Sie die Quelldateien, oder versuchen Sie, Ihre vorhandene Projektdatei mithilfe eines Tools zu konvertieren.Create new projects for .NET Core and copy over source files, or attempt to convert your existing project file with a tool.

    .NET Core verwendet ein einfacheres (und anderes) Projektdateiformat als .NET Framework..NET Core uses a simplified (and different) project file format than .NET Framework. Sie müssen Ihre Projektdateien in dieses Format konvertieren, um sie weiter nutzen zu können.You'll need to convert your project files into this format to continue.

  6. Portieren Sie Ihren Testcode.Port your test code.

    Die Portierung auf .NET Core stellt eine erhebliche Änderung Ihrer Codebase dar, deshalb wird dringend empfohlen, Ihre Tests zu portieren. Auf diese Weise können Sie Tests ausführen, wenn Sie Ihren Code portieren.Because porting to .NET Core is such a significant change to your codebase, it's highly recommended to get your tests ported, so that you can run tests as you port your code over. MSTest, xUnit und NUnit funktionieren in .NET Core.MSTest, xUnit, and NUnit all work on .NET Core.

Darüber hinaus können Sie versuchen, kleinere Lösungen oder einzelne Projekte mit dem Tool dotnet try-convert in einem einzigen Vorgang in das .NET Core-Projektdateiformat zu portieren.Additionally, you can attempt to port smaller solutions or individual projects to the .NET Core project file format with the dotnet try-convert tool in one operation. Es kann nicht garantiert werden, dass dotnet try-convert für all Ihre Projekte funktioniert, und es kann zu leichten Abweichungen bei Verhalten kommen, das Sie unbedingt benötigen.dotnet try-convert is not guaranteed to work for all your projects, and it may cause subtle changes in behavior that you may find that you depended on. Das Tool sollte als Ausgangspunkt verwendet werden, um grundlegende Elemente zu automatisieren, die sich für eine Automatisierung eignen.It should be used as a starting point that automates the basic things that can be automated. Es ist keine garantierte Lösung zum Migrieren eines Projekts.It isn't a guaranteed solution to migrating a project.