У меня есть вопрос о том, как .NET Framework (2.0) разрешает зависимые сборки.
В настоящее время мы немного переписываем большое приложение ASP.NET и различные сателлитные исполняемые файлы.Есть также некоторые неприятные проблемы с нашими базовыми классами, для решения которых мы разработали новый API.Пока что это нормальное, хотя и широкое обновление.
Наша иерархия:
- ASP.NET (aspx)
- бизнес-логика (DLL)
- базовые классы (DLL)
Таким образом, ASP.NET не подходит, некоторые библиотеки DLL (в частности, базовые классы) имеют уровень перенаправления, который содержит старые пространства имен/ функционирует и перенаправляет их в новый API.Когда мы заменили библиотеки DLL, ASP.NET отлично их подобрал (возможно, потому, что это вызвало перекомпиляцию).
Прекомпилированные приложения этого не делают, хотя одни и те же пространства имен и классы находятся в обоих наборах библиотек DLL.Даже когда файл переименовывается, он жалуется, что атрибут assemblyname отличается (что должно быть по необходимости).Я знаю, что вы можете перенаправить на разные сети версии одной и той же сборки, но есть ли способ перенаправить на совершенно другую сборку?
Альтернативы - перекомпилировать приложения (не совсемхотите, потому что сами приложения не изменились) или перекомпилируйте старую базовую DLL с заглушками, ссылающимися на новую базовую DLL (новая фиктивная DLL - беспорядок в файловой системе).