2 votes

Est-ce une mauvaise pratique pour une application d'installer un assemblage tiers dans le GAC sans le demander ?

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X