使用反射,我需要加载2个不同版本的相同程序集。我可以在同一个进程中加载2个不同AppDomain中的2个版本吗?加载相同程序集的不同版本
我需要做一些从旧版本的应用程序到新版本的数据迁移。 请让我知道这是可能的,还是应该使用2个独立的进程。
使用反射,我需要加载2个不同版本的相同程序集。我可以在同一个进程中加载2个不同AppDomain中的2个版本吗?加载相同程序集的不同版本
我需要做一些从旧版本的应用程序到新版本的数据迁移。 请让我知道这是可能的,还是应该使用2个独立的进程。
更新:我想我会后我发现作为一个答案。反思在开发工作方面证明过于复杂,追踪运行时间错误等。我记得长时间面对相似的情况时,采用两种不同的方法做了另一种方法(谢谢布兰登)。
这是计划:在开发和故障排除方面没有优雅但更容易。既然是一次性工作,我们只需要让它工作。
主持一个具有新版本应用程序的远程处理过程(我称之为服务器)。远程客户端具有旧版本的引用。
远程处理客户端实例化并加载迁移所需的数据的对象。 将旧对象转换为常见的可序列化对象并作为参数传递给服务器。
远程处理服务器使用通用数据来实例化并加载新对象。调用新类型的函数来保存其数据。
如果您在设计时做这件事(你表明你是不是),这会帮助你:
http://blogs.msdn.com/abhinaba/archive/2005/11/30/498278.aspx
如果您是通过反射动态地做这件事(看起来像这里的情况),这可以帮助你:
http://infosysblogs.com/microsoft/2007/04/loading_multiple_versions_of_s.html
好的链接,谢谢。 – 2011-11-21 23:46:31