Non esiste un inferno per le versioni. Questo è specificamente l'obiettivo di NuGet: le diverse versioni dello stesso pacchetto possono essere installate fianco a fianco. L'unica limitazione è che non puoi fare riferimento a versioni differenti nello stesso progetto . Ma quali versioni delle librerie fanno riferimento ai pacchetti da cui dipendo sono irrilevanti per il mio progetto.
Nella maggior parte dei casi, non puoi nemmeno evitare questa situazione se usi librerie di terze parti. Immagina di dipendere dalla libreria di terze parti A e dalla libreria di terze parti B. La libreria A utilizza una versione specifica di Json.Net. La libreria B utilizza un'altra versione. cosa fai? Chiede all'autore di una di queste librerie di aggiornare o downgrade delle dipendenze? Butti una delle biblioteche e trascorri i prossimi due anni riscrivendola solo per utilizzare una versione specifica di Json.Net?
Come autore di una libreria, non dovresti preoccuparti della versione di Json.Net che i tuoi clienti usano nei loro progetti, o delle versioni di Json.Net usate dalle librerie di terze parti, perché hai vinto non sbagliare comunque. Un cliente utilizzerà la versione 6; un'altra versione 8. La libreria verrà installata parallelamente ad altre librerie utilizzando la versione 7 e quelle che utilizzano la versione 9.
This is for cases when people install my package, but don't have the latest version of Json.Net - not to force them to update their references.
Funziona in un raro caso di persone che stanno usando la versione 6.0.1 della libreria. E fallisce per tutti coloro che usano la versione 6.0.0. E 5. *. E 4. *. E 6.0.2. E 6.0.3. Ottieni l'immagine.
L'unica cosa di cui ti dovresti occupare è l'immagine che dai del tuo progetto. Se utilizzi una versione obsoleta, le persone potrebbero pensare:
Ew, this looks old. Why is this guy using a library which is not used any longer for the last three years? I think he just doesn't maintain his project any longer. I'll try one which is actually maintained.
D'altra parte, se stai utilizzando la versione più recente di una libreria di terze parti, cosa potrebbe accadere? La persona potrebbe scoprire che la tua libreria sta utilizzando una versione più recente e decide di aggiornare il proprio progetto. Oppure continua a utilizzare la versione precedente, perché anche questa è una scelta valida.