Scénario : Nous avons un serveur sur lequel sont hébergés plusieurs sites Web ASP.NET. Il y a quelques jours, un certain nombre de ces sites se sont "cassés" avec l'erreur suivante :
Avertissement 44 Impossible de résoudre cette référence. Impossible de localiser l'assemblage "AjaxControlToolkit, Version=1.0.10920.32880, Culture=neutre, PublicKeyToken=28f01b0e84b6d53e, processorArchitecture=MSIL". Vérifiez que l'assemblage existe sur le disque. Si cette référence est requise par votre code, vous pouvez obtenir des erreurs de compilation.
Après quelques recherches, il s'avère qu'un système de gestion de contenu (CMS) (commercial) a été installé sur le serveur et qu'il a ajouté le fichier de tiers. AjaxControlTookit dans le Global Assembly Cache. Il ne l'a pas demandé, il l'a simplement ajouté (en fait, il a ajouté le fichier deux versions : 1.0.10618.0 et 3.0.20229.0). Cela provoquait des conflits de résolution car les sites web en question faisaient référence à une version différente du Toolkit dans leur répertoire /Bin local.
Donc, je suppose que ma question est : Pensez-vous qu'il était acceptable pour ce CMS d'installer ces assemblages dans le GAC (surtout si l'on considère que les assemblages étaient des bibliothèques open-source et non les leurs) ? Ou est-ce que les sites Web qui ont "cassé" sont en faute parce qu'ils n'ont pas été plus explicites dans leur façon de référencer les assemblages dans le dossier /Bin ? Merci.