Organisieren Ihres Projekts zur Unterstützung von .NET Framework und .NET Core

Dieser Artikel hilft Projektbesitzern, Ihre eigene Lösung parallel für .NET Framework und .NET Core zu kompilieren. Es werden mehrere Optionen zum Organisieren von Projekten behandelt, die Entwickler beim Erreichen dieses Ziels unterstützen sollen. Im Folgenden finden Sie eine Liste mit typischen Szenarios, die Sie bei der Entscheidung bedenken sollten, wie Sie Ihr Projektlayout mit .NET Core einrichten. Die Liste deckt möglicherweise nicht alle Punkte ab, die Sie benötigen. Sie können abhängig von den Anforderungen Ihrer Projekte priorisieren.

  • Combine existing projects and .NET Core projects into single projects (Kombinieren von vorhandenen Projekten und .NET Core-Projekten in einzelnen Projekten)

    Es dient folgenden Zwecken:

    • Vereinfachen Ihres Buildprozesses durch Kompilieren eines einzelnen Projekts statt mehrerer Projekte, die alle eine andere Version von .NET Framework oder eine andere Plattform als Ziel haben.
    • Vereinfachen der Verwaltung von Quelldateien für mehrfachzielorientierte Projekte, da Sie eine einzelne Projektdatei verwalten müssen. Beim Hinzufügen/Entfernen von Quelldateien müssen Sie diese bei den Alternativen manuell mit Ihren Projekten synchronisieren.
    • Einfaches Generieren eines NuGet-Pakets zum Verbrauch.
    • Ermöglicht das Schreiben von Code für eine bestimmte .NET Framework-Version in Ihren Bibliotheken mithilfe von Compileranweisungen.

    Nicht unterstützte Szenarios:

  • Trennen vorhandener und neuer .NET Core-Projekte

    Es dient folgenden Zwecken:

    • Entwicklung in bereits erstellten Projekten wird weiterhin unterstützt. Entwickler oder Mitwirkende, die eventuell nicht über Visual Studio 2017 verfügen, müssen kein Upgrade durchführen.
    • Minimieren der Möglichkeit, neue Probleme in vorhandenen Projekten zu erstellen, da in diesen Projekten keine Codeänderung erforderlich ist.

Beispiel

Betrachten Sie das folgende Repository:

Vorhandenes Projekt

Quellcode

Im Folgenden sind verschiedene Möglichkeiten beschrieben, Unterstützung für .NET Core für dieses Repository hinzuzufügen. Dies ist abhängig von den Einschränkungen und der Komplexität bestehender Projekte.

Ersetzen von vorhandenen Projekten mit mehrfachzielorientierten .NET Core Projekten

Organisieren Sie das Repository neu, sodass alle vorhandenen \.csproj-Dateien entfernt werden, und eine einzelne *\.csproj*-Datei erstellt wird, die mehrere Frameworks als Ziel hat. Dies ist eine hervorragende Option, da ein einzelnes Projekt für andere Frameworks kompilieren kann. Außerdem kann die Option verschiedene Kompilierungsoptionen und Abhängigkeiten pro Zielframework behandeln.

Erstellen einer csproj, die mehrere Frameworks als Ziel hat

Quellcode

Zu beachtende Änderungen:

  • Der Ersatz für packages.config und \.csproj* mit einer neuen .NET Core \.csproj*. NuGet-Pakete werden mit <PackageReference> ItemGroup angegeben.

Behalten vorhandener Projekte und Erstellen eines .NET Core-Projekts

Wenn es vorhandene Projekte gibt, die ältere Frameworks als Ziel haben, empfiehlt es sich, diese Projekte unverändert zu lassen und ein .NET Core-Projekt zu verwenden, um kommende Frameworks als Ziel festzulegen.

.NET Core-Projekt mit vorhandenem Projekt in anderem Ordner

Quellcode

Zu beachtende Änderungen:

  • .NET Core-Projekte und vorhandene Projekte werden in separaten Ordnern gespeichert.
    • Projekte in separaten Ordnern zu speichern, vermeidet, dass Sie über Visual Studio 2017 verfügen müssen. Sie können eine separate Lösung erstellen, die nur die alten Projekte öffnet.

Siehe auch

Weitere Anleitungen zum Migrieren zu .NET Core finden Sie in der Dokumentation zum Portieren von .NET Core.