|
Совместное исполнение
Смысл описанной здесь истории с управлением версиями сборок со строгими
именами в том, что одна сборка, Арр.ехе, может привязываться к другим -
Calculus.dll версии 2.0.0.0 и AdvMath.dll версии 3-0.0.0. В свою очередь сборка
AdvMath.dll может привязываться к сборке Calculus.dll версии 1.0.0.0.
CLR способна загружать в одно адресное пространство несколько сборок с
одинаковыми именами, но из разных каталогов. Этот механизм, называемый совместным исполнением (side-by-side execution), является ключевым компонентом
решения проблемы "ада DLL".
Разработчик должен знать о механизме совместного исполнения, чтобы даже
мелкие ошибки не вкрались в его программы. Представьте, что сборка создает
именованный объект ядра «проекция файла» Win32 и использует его для хранения данных. Б то же время загружается другая версия той же сборки и пытается
создать аналогичный объект ядра с тем же именем. Вторая сборка не сможет создать новое хранилище данных и вместо этого получит доступ к области памяти,
выделенной для первой сборки. Если не соблюдать осторожность при программировании, сборки могут испортить данные друг у друга, и работа приложения
станет непредсказуемой.
Предыдущая стр.   
Оглавление   
Следующая стр.
Средняя оценка:     (1 - 1 голосов) Для оценки необходимо зарегистрироваться
Только зарегистрировавшиеся пользователи могут оставлять комментарии
|
|