2008-09-12 2 views
22

Используя отражение, мне нужно загрузить 2 разных версии одной и той же сборки. Могу ли я загрузить 2 версии в 2 разных AppDomains в том же процессе?Загрузка различных версий одной и той же сборки

Мне нужно выполнить перенос данных из старой версии приложения в новую версию. Пожалуйста, дайте мне знать, если это возможно, или я должен использовать 2 отдельных процесса.

ответ

5

UPDATE: Я думал, что я буду размещать свои выводы в качестве ответа. Отражение оказалось слишком сложным с точки зрения усилий по разработке, отслеживания ошибок времени выполнения и т. Д. Я помню, что я использовал другой подход, используя два разных процесса, когда сталкивался с подобной ситуацией долгое время назад (спасибо Брэндон).

Это план: ничего элегантного, но легкого с точки зрения разработки и устранения неполадок. Поскольку это одноразовая работа, нам просто нужно заставить ее работать.

Проведите процесс удаленного доступа (который я называю сервером) с новой версией приложения. У удаленного клиента есть ссылки для более старой версии.

Удаленный клиент создает экземпляры и загружает объекты с данными, необходимыми для миграции. Преобразование старых объектов в обычные сериализуемые объекты и передача параметров на сервер.

Remoting Server использует общие данные для создания экземпляров и загрузки новых объектов. Вызывает функции новых типов для сохранения своих данных.

14

Если вы делаете это во время разработки (которые вы указать, что вы не), это должно помочь вам:

http://blogs.msdn.com/abhinaba/archive/2005/11/30/498278.aspx

Если вы делаете это динамически с помощью отражения (выглядит как в данном случае) это может помочь вам:

http://infosysblogs.com/microsoft/2007/04/loading_multiple_versions_of_s.html

+2

Хорошие ссылки, спасибо. – 2011-11-21 23:46:31

Смежные вопросы