Não há nenhum inferno de controle de versão. Este é especificamente o objetivo do NuGet: as diferentes versões do mesmo pacote podem ser instaladas lado a lado. A única limitação é que você não pode fazer referência a diferentes versões no mesmo projeto . Mas quais versões de bibliotecas são referenciadas pelos pacotes dos quais eu dependo são irrelevantes para o meu projeto.
Na maioria dos casos, você não pode evitar essa situação se usar bibliotecas de terceiros. Imagine que você dependa de uma biblioteca de terceiros A e de uma biblioteca de terceiros B. A biblioteca A usa uma versão específica do Json.Net. A biblioteca B usa outra versão. O que você faz? Você pede ao autor de uma dessas bibliotecas para atualizar ou fazer downgrade das dependências? Você joga uma das bibliotecas e passa os dois anos seguintes reescrevendo-a apenas para usar uma versão específica do Json.Net?
Como autor de uma biblioteca, você não deve se preocupar com a versão do Json.Net que seus clientes usam em seus projetos, ou sobre as versões do Json.Net usadas por bibliotecas de terceiros, porque você ganhou acertar de qualquer maneira. Um cliente usará a versão 6; outro - versão 8. Sua biblioteca será instalada lado a lado com outras bibliotecas usando a versão 7 e as que usam a versão 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.
Isso funciona em um caso raro de pessoas que estão usando a versão 6.0.1 da biblioteca. E falha para todos que usam a versão 6.0.0. E 5. *. E 4. *. E 6.0.2. E 6.0.3. Você entendeu a foto.
A única coisa que você deve se preocupar é a imagem que você dá do seu projeto. Se você usa uma versão desatualizada, as pessoas podem pensar:
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.
Por outro lado, se você estiver usando a versão mais recente de uma biblioteca de terceiros, o que poderia acontecer? A pessoa pode descobrir que sua biblioteca está usando uma versão mais recente e decide atualizar seu próprio projeto. Ou continue usando a versão antiga, porque essa também é uma opção válida.