Organizzare il progetto per il supporto sia di .NET Framework che di .NET

È possibile creare una soluzione che viene compilata con .NET Framework e .NET affiancati. Questo articolo illustra diverse opzioni per l'organizzazione del progetto che consentono di raggiungere questo obiettivo. Ecco alcuni scenari tipici da considerare quando si decide come configurare il layout del progetto con .NET. L'elenco potrebbe non essere esaustivo.

  • Combinare progetti esistenti e progetti .NET in un singolo progetto

    Vantaggi:

    • Semplifica il processo di compilazione mediante la compilazione di un singolo progetto piuttosto che di progetti multipli, ciascuno destinato a una versione o a una piattaforma diversa di .NET Framework.
    • Semplifica la gestione di file di origine per progetti con più destinazioni perché è necessario gestire un unico file di progetto. Quando si aggiungono o rimuovono i file di origine, le alternative richiedono una sincronizzazione manuale di questi file con altri progetti.
    • Generare facilmente un pacchetto NuGet per l'utilizzo.
    • Consente di scrivere codice per una versione specifica di .NET Framework usando le direttive del compilatore.

    Svantaggio:

  • Mantenere separati tutti i progetti

    Vantaggi:

    • Supporta lo sviluppo di progetti esistenti per sviluppatori e collaboratori che potrebbero non avere Visual Studio 2019 o versione successiva.
    • Riduce la possibilità di introdurre nuovi bug nei progetti esistenti in quanto non è necessaria alcuna varianza del codice nei progetti.

Si consideri questo repository GitHub di esempio. La figura seguente mostra il layout di questo repository:

Existing project structure diagram

Le sezioni seguenti descrivono diversi modi per aggiungere il supporto per .NET in base al repository di esempio.

Sostituire i progetti esistenti con un progetto .NET con più destinazioni

Riorganizzare il repository in modo che venga rimosso qualsiasi file *.csproj esistente e venga creato un singolo file *.csproj destinato a più framework. Questa è un'ottima opzione perché consente di compilare un singolo progetto per diversi framework. Include anche la possibilità di gestire diverse opzioni di compilazione e dipendenze a seconda del framework di destinazione.

project that targets multiple frameworks diagram

Per esaminare codice di esempio, vedere GitHub.

Modifiche da notare:

  • Sostituzione di packages.config e *.csproj con un nuovo *.csproj .NET. I pacchetti NuGet vengono specificati con <PackageReference> ItemGroup.

Mantenere i progetti esistenti e creare un progetto .NET

Se sono presenti progetti destinati a framework precedenti, è consigliabile lasciare invariati i progetti e usare un progetto .NET destinato ai framework futuri.

.NET project with existing projects in a different folder diagram

Per esaminare codice di esempio, vedere GitHub.

I progetti esistenti e .NET vengono mantenuti in cartelle separate. La suddivisione dei progetti in cartelle separate evita di dover disporre di Visual Studio 2019 o versioni successive. È possibile creare una soluzione separata che consente di aprire solo i progetti precedenti.

Vedi anche