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