Сценарий: У нас есть сервер, на котором размещено несколько сайтов ASP.NET. Несколько дней назад довольно многие из этих сайтов «сломались» со следующей ошибкой:
Предупреждение 44 Не удалось разрешить эту ссылку. Не удалось найти сборку "AjaxControlToolkit, версия = 1.0.10920.32880, культура = нейтральная, PublicKeyToken = 28f01b0e84b6d53e, processorArchitecture = MSIL". Убедитесь, что сборка существует на диске. Если эта ссылка требуется вашим кодом, вы можете получить ошибки компиляции.
После некоторого расследования выясняется, что (коммерческая) система CMS была установлена на сервере и добавила стороннюю AjaxControlTookit в глобальный кэш сборок. Он не спрашивал, он просто добавил его (фактически он добавил две версии: 1.0.10618.0 и 3.0.20229.0). Это вызывало конфликты разрешения, так как сайты, о которых идет речь, ссылались на другую версию Инструментария в своем локальном каталоге / Bin.
Итак, я предполагаю, что мой вопрос: как вы думаете, было ли приемлемо, чтобы эта CMS установила эти сборки в GAC (особенно учитывая, что сборки были библиотеками с открытым исходным кодом, а не их собственными)? Или веб-сайты, которые «сломались» по вине из-за того, что они не были более явными в том, как они ссылались на сборки в папке / Bin? Спасибо.