关于C#:加载同一程序集的不同版本

关于C#:加载同一程序集的不同版本

Loading different versions of the same assembly

使用反射,我需要加载同一程序集的2个不同版本。 是否可以在同一过程中将2个版本加载到2个不同的AppDomain中?

我需要将一些数据从旧版本的应用迁移到新版本。
请让我知道是否可行,或者我应该使用2个单独的过程。


如果您在设计时正在这样做(表明您不是),这应该可以帮助您:

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

如果您通过反射来动态地执行此操作(看起来像这里的情况),则可能会帮助您:

https://www.infosysblogs.com/microsoft/2007/04/loading_multiple_versions_of_s.html


更新:我以为我会把我的发现作为答案。在开发工作量,跟踪运行时错误等方面,反射被证明太复杂了。我记得当很久以前遇到类似情况时,我会使用两种不同的方法来做另一种方法(谢谢布兰登)。

这是计划:没什么好看的,但是在开发和故障排除方面更容易。由于这是一项一次性的工作,因此我们只需使其工作即可。

托管具有新版本应用程序的远程处理过程(我称之为服务器)。远程客户端具有旧版本的引用。

远程客户端实例化并向对象加载迁移所需的数据。
将旧对象转换为通用的可序列化对象,并将其作为参数传递给服务器。

Remoting Server使用公共数据来实例化和加载新对象。调用新类型上的函数以保留其数据。


推荐阅读

    linux上数据库的命令?

    linux上数据库的命令?,服务,系统,信息,地址,命令,密码,工具,管理,数据,单位,

    linux命令dm数据库?

    linux命令dm数据库?,地址,软件,时间,设备,名字,服务,位置,名称,公司,命令,lin

    linux设备加载命令?

    linux设备加载命令?,系统,设备,信息,电脑,第一,命令,文件,分区,磁盘,详细信

    linux存储数据命令?

    linux存储数据命令?,系统,管理,数据,设备,情况,地址,工作,命令,服务,平台,Lin

    linux网卡加载命令行?

    linux网卡加载命令行?,系统,地址,代码,网络,设备,电脑,名称,网卡,技术指标,

    linux数据库查找命令?

    linux数据库查找命令?,位置,名称,状态,服务,软件,信息,系统,命令,名字,密码,

    linux数据库同步命令?

    linux数据库同步命令?,信息,系统,汽车,车辆,服务,工作,通信,一致,分析,数据,D

    linux命令刷新加载?

    linux命令刷新加载?,系统,下来,工具,网上,命令,终端,环境变量,以下,文件,路

    linux建立数据库命令?

    linux建立数据库命令?,软件,系统,工作,数据,密码,工具,数据库,一致,网络,服

    linux命令进数据库?

    linux命令进数据库?,地址,系统,名字,服务,密码,命令,读法,数据库,操作系统,

    linux清空表数据命令?

    linux清空表数据命令?,系统,数据,软件,名称,不了,命令,文件,电脑,地址,位置,L

    加载linux内核的命令?

    加载linux内核的命令?,系统,信息,地址,电脑,发行,设备,简介,平台,发展,基础,l

    linux拷贝数据命令?

    linux拷贝数据命令?,系统,地址,文件,数据,命令,目录,服务,基本知识,项目,密

    linux加载没有的命令?

    linux加载没有的命令?,系统,服务,工具,信息,设备,标准,工作,命令,检测,代码,

    linux数据库检查命令?

    linux数据库检查命令?,服务,状态,地址,位置,系统,信息,命令,工作,情况,密码,

    linux命令进去数据库?

    linux命令进去数据库?,地址,服务,名字,系统,数据库,工具,基础,工作,管理,网

    linux数据库基础命令?

    linux数据库基础命令?,地址,工作,基础,系统,命令,信息,情况,工具,设备,目录,l

    linux数据共享命令?

    linux数据共享命令?,情况,系统,工具,网络,数据,软件,发行,设备,命令,文件,Lin

    命令发送数据linux?

    命令发送数据linux?,数据,地址,时间,工具,系统,设计,工作,网络,命令,综合,lin

    数据库导出命令linux?

    数据库导出命令linux?,数据,系统,名称,密码,软件,服务,情况,网上,工具,文件,L