繁体   English   中英

是否可以在同一进程中加载​​两个版本的.NET运行时?

[英]Is it possible to load two versions of the .NET runtime in the same process?

我需要澄清两种情况:

  1. 使用.NET 3.5编译的可执行文件需要使用使用.NET 1.1编译的库,并且库必须在1.1运行时运行。

  2. 使用.NET 1.1编译的可执行文件需要使用使用.NET 3.5编译的库。

我找不到一个可靠的来源,说明无法加载两个版本的.NET运行时,而且微软的文档在这个问题上非常模糊。

否 - 您无法将CLR加载到同一进程中两次。 请参阅CLR Hosting的文档

与早期版本的运行时一样,CorBindToRuntimeEx函数初始化运行时。 您可以选择要加载的运行时版本,但进程只能 托管一个版本

.NET 4承诺通过In-Process Side-Side在同一进程中托管不同的CLR版本。

对于情况#1,是否有任何特殊原因(例如,重大变化)需要将库托管在1.1运行时? 是否可以通过1.1编译的Web服务公开库,并将可执行文件指向Web服务? (或者其他一些远程处理技术,让库在自己的进程中?)

对于情况#2,是否可以在2.0 / 3.5下重新编译1.1应用程序,以便它可以驻留在同一个进程中?

无论如何,Rob Walker是对的(我赞成) - 你根本无法在同一个进程中托管2个版本的运行时。 所以你需要以某种方式解决它。 我想,在这两种情况下,源都必须可用,因此应该重新编译和重新测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM