Organisieren Ihres Projekts zur Unterstützung von sowohl .NET Framework als auch .NET

Sie können eine Lösung erstellen, die für .NET Framework und .NET parallel kompiliert wird. In diesem Artikel werden verschiedene Projektorganisationsoptionen behandelt, die Ihnen dabei helfen, dieses Ziel zu erreichen. Es folgen einige Szenarien, die Sie bei der Entscheidung berücksichtigen sollten, wie Sie Ihr Projektlayout mit .NET einrichten. Die Liste deckt möglicherweise nicht alles ab, was Sie sich wünschen.

  • Kombinieren vorhandener Projekte und .NET-Projekte in einem einzelnen Projekt

    Vorteile:

    • 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 verwenden.
    • Vereinfachen der Verwaltung von Quelldateien für Projekte mit mehreren Zielen, da Sie nur eine Projektdatei verwalten müssen. Beim Hinzufügen oder Entfernen von Quelldateien müssen Sie diese Dateien bei den Alternativen manuell mit Ihren Projekten synchronisieren.
    • Einfaches Generieren eines NuGet-Pakets für die Nutzung.
    • Ermöglicht das Schreiben von Code für eine bestimmte .NET Framework-Version mithilfe von Compileranweisungen

    Nachteil:

  • Alle Projekte getrennt halten

    Vorteile:

    • Unterstützung der Entwicklung in vorhandenen Projekten für Entwickler und Mitwirkende, die möglicherweise nicht über Visual Studio 2019 oder eine höhere Version verfügen.
    • Verringern der Möglichkeit, neue Probleme in vorhandenen Projekten zu schaffen, da in diesen Projekten keine Codeänderung erforderlich ist.

Betrachten Sie dieses Beispiel eines GitHub-Repositorys. Die folgende Abbildung zeigt das Layout dieses Repositorys:

Existing project structure diagram

In den folgenden Abschnitten werden verschiedene Möglichkeiten beschrieben, wie Sie auf Grundlage des Beispielrepositorys Unterstützung für .NET hinzufügen können.

Ersetzen vorhandener Projekte durch ein .NET-Projekt für mehrere Ziele

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 verschiedene Frameworks kompiliert werden kann. Außerdem kann die Option verschiedene Kompilierungsoptionen und Abhängigkeiten pro Zielframework behandeln.

project that targets multiple frameworks diagram

Beispielcode finden Sie auf GitHub.

Zu beachtende Änderungen:

  • Ersetzung von packages.config und *.csproj durch eine neue .NET *.csproj. NuGet-Pakete werden mit <PackageReference> ItemGroup angegeben.

Beibehalten vorhandener Projekte und Erstellen eines .NET-Projekts

Wenn es vorhandene Projekte gibt, die ältere Frameworks als Ziel haben, empfiehlt es sich, diese Projekte unverändert zu lassen und ein .NET-Projekt zu verwenden, das auf künftige Frameworks ausgelegt ist.

.NET project with existing projects in a different folder diagram

Beispielcode finden Sie auf GitHub.

Das .NET- und vorhandene Projekte werden in separaten Ordnern gespeichert. Durch das Speichern der Projekte in separaten Ordnern ist Visual Studio 2019 oder eine spätere Version nicht mehr notwendig. Sie können eine separate Lösung erstellen, die nur die alten Projekte öffnet.

Siehe auch