2008-09-12 9 views
22

En utilisant la réflexion, j'ai besoin de charger 2 versions différentes du même assemblage. Puis-je charger les 2 versions dans 2 AppDomains différents dans le même processus?Chargement de différentes versions du même assemblage

Je dois faire une migration de données de l'ancienne version de l'application à la nouvelle version. S'il vous plaît laissez-moi savoir si cela est possible ou devrais-je utiliser 2 processus distincts.

Répondre

5

MISE À JOUR: Je pensais que je vais poster mes conclusions en réponse. La réflexion s'est avérée trop complexe en termes d'effort de développement, de suivi des erreurs de temps d'exécution, etc. Je me souviens avoir fait une approche différente en utilisant 2 processus différents face à une situation similaire depuis longtemps (Merci Brandon).

C'est le plan: Rien d'élégant mais plus facile en termes de développement et de dépannage. Comme c'est un travail ponctuel, il suffit de le faire fonctionner.

Héberger un processus d'accès distant (que j'appelle le serveur) ayant la nouvelle version de l'application. Un client distant a des références pour l'ancienne version.

Le client distant instancie et charge les objets avec les données requises pour la migration. Convertit les anciens objets en objets sériels communs et les transmet en tant que paramètres au serveur.

Remoting Server utilise les données communes pour instancier et charger les nouveaux objets. Invoque les fonctions sur les nouveaux types pour conserver leurs données.

14

Si vous le faites au moment de la conception (que vous indiquez que vous n'êtes pas) cela devrait vous aider:

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

Si vous le faites de manière dynamique par la réflexion (ressemble le cas ici), ce peut vous aider:

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

+2

Bons liens, merci. –

+1

Ouais ... Le premier me donne, et un tas d'autres gars, des problèmes avec "assemblage déjà référencé". Poste de 7 ans, et je ne peux toujours pas voir de résolution ou d'explication dans le champ des commentaires de ce poste. Les gens de SO, aide? – Nilzor

+0

L'InfoSysblog (deuxième lien) est un lien mort maintenant. Aucune suggestion? –

Questions connexes