Quelle est la meilleure pratique dans le monde .NET pour gérer les dépendances transitives qui provoquent des conflits de version?
En détail: Le projet A dépend du projet B, qui à son tour dépend de la bibliothèque C
également
Le projet A dépend également du projet X, qui dépend d’une version DIFFERENT et (potentiellement) incompatible de la bibliothèque C.
A-> B-> Cv1.0
Et
A-> X-> Cv2.0
où
Cv1.0 Cv2.0
Y at-il un moyen de faire ce travail?
Peut-on le faire SANS utiliser le GAC?
Peut-on le faire même si B et X sont uniquement au format binary (source non accessible)?
En d’autres termes, existe-t-il un moyen de permettre aux projets B et X d’utiliser chacun leurs propres dépendances lorsqu’ils sont utilisés ensemble dans le projet A sans provoquer de conflits?
NOTE: Je me rends compte que, idéalement, je ne devrais pas avoir ce problème du tout mais que la dépendance vis-à-vis de bibliothèques externes s’agrandit, ce sera un effet secondaire inévitable. Je me demande donc comment devrait-il être traité au mieux?
Il y a beaucoup de questions similaires sur le débordement de stack. Par exemple, référencer 2 versions différentes de log4net dans la même solution
Résumé:
vous pouvez obtenir le jeton de clé publique de C à l’aide de sn -T C.dll
Si la v1.0 et la v2.0 of C ont une clé publique différente (même si, idéalement, elles ne devraient pas l’être), incluez deux balises dependAssembly.