Partager via


Organiser votre projet pour prendre en charge .NET Framework et .NET

Vous pouvez créer une solution qui se compile à la fois pour .NET Framework et .NET côte à côte. Cet article traite de plusieurs options d’organisation de projet pour vous aider à atteindre cet objectif. Voici quelques scénarios typiques à prendre en compte lorsque vous décidez de configurer la disposition de votre projet avec .NET. La liste peut ne pas couvrir tout ce que vous voulez.

  • Combiner des projets existants et des projets .NET en un seul projet

    Avantages :

    • Simplifie votre processus de génération en compilant un seul projet plutôt que plusieurs projets qui ciblent chacune une version ou une plateforme .NET Framework différente.
    • Simplifie la gestion des fichiers sources pour les projets multi-ciblés, car vous devez gérer un fichier projet unique. Lors de l’ajout ou de la suppression de fichiers sources, les alternatives vous obligent à synchroniser manuellement ces fichiers avec vos autres projets.
    • Générez facilement un package NuGet pour la consommation.
    • Vous permet d’écrire du code pour une version spécifique du .NET Framework à l’aide de directives du compilateur.

    Inconvénient :

  • Séparer tous les projets

    Avantages :

    • Prend en charge le développement sur des projets existants pour les développeurs et les contributeurs qui n’ont peut-être pas Visual Studio 2019 ou une version ultérieure.
    • Réduit la possibilité de créer de nouveaux bogues dans des projets existants, car aucune activité de code n’est requise dans ces projets.

Prenons cet exemple de dépôt GitHub. La figure ci-dessous montre comment ce référentiel est disposé :

Diagramme de structure de projet existant

Les sections suivantes décrivent plusieurs façons d’ajouter la prise en charge de .NET en fonction de l’exemple de référentiel.

Remplacer des projets existants par un projet .NET multi-ciblé

Réorganiser le référentiel afin que tous les fichiers *.csproj existants soient supprimés et qu’un seul fichier *.csproj soit créé qui cible plusieurs frameworks. Il s’agit d’une excellente option, car un seul projet peut être compilé pour différents frameworks. Il a également la possibilité de gérer différentes options de compilation et dépendances par framework ciblé.

diagramme du projet qui cible plusieurs frameworks

Pour obtenir un exemple de code, consultez GitHub.

Les modifications apportées à la note sont les suivantes :

  • Remplacement de packages.config et *.csproj par un nouveau .NET *.csproj. Les packages NuGet sont spécifiés avec <PackageReference> ItemGroup.

Conserver les projets existants et créer un projet .NET

S’il existe des projets qui ciblent des infrastructures plus anciennes, vous souhaiterez peut-être laisser ces projets inchangés et utiliser un projet .NET pour cibler des frameworks futurs.

Projet .NET avec des projets existants dans un autre diagramme de dossiers

Pour obtenir un exemple de code, consultez GitHub.

Les projets .NET et existants sont conservés dans des dossiers distincts. La conservation des projets dans des dossiers distincts évite de vous forcer à disposer de Visual Studio 2019 ou versions ultérieures. Vous pouvez créer une solution distincte qui ouvre uniquement les anciens projets.

Voir aussi