Загрузка различных версий одной и той же сборки - программирование

Загрузка различных версий одной и той же сборки

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

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

4b9b3361

Ответ 1

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

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

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

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

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