尝试重复这将是一个真正的痛苦,所以我希望有人能快速回答......
假设我有一个.NET 4.0应用程序,引用了.NET 2.0库(在本例中为SharpZipLib)。这当然可以在安装了.NET 2.0和4.0的普通机器上正常工作。
如果运行此应用程序的服务器只有.NET 4.0而不是2.0(或3.0 / 3.5等),那么我需要做些什么才能让.NET 2.0库正常运行?
从我所读到的,看起来我可能能够进入配置设置 supportedRuntime
,但我不太明白究竟是什么。
配置设置是否有效,或者只有.NET 4.0库在此环境中运行?
(这是一个假设的环境 - 我不打算永远拥有我自己的服务器4.0而不是2.0,但如果有人疯狂到可以做到这一点,我希望能够支持他们)。
谢谢
CLR可以在.net 4.0框架中加载较旧的程序集。
这是一个很好的阅读:
http://msdn.microsoft.com/en-us/magazine/ee819091.aspx
编辑:文章更新报价。特别注意大胆
.NET Framework 4运行时以及所有未来的运行时将能够实现
彼此在进行中。虽然我们没有支持这个
对于较旧的运行时(1.0到3.5)的功能,我们确实做到了
4及以上版本将能够在任何一个旧版本的进程中运行
运行。 换句话说,您将能够加载4,5和2.0
相同的过程,但你将无法加载1.1和2.0
同样的过程。 .NET Frameworks 2.0到3.5都在2.0上运行
运行时因此彼此之间没有冲突,如图所示
2。
从bryanmac的回答链接(在制品并排):
这意味着如果重新编译应用程序以针对.NET Framework 4运行时运行,并且仍然具有针对.NET 2.0构建的依赖程序集,那么这些依赖项也将加载到.NET 4运行时。
但是,这可能意味着由于在不同的运行时上运行可能存在错误。
如果您拥有SharpZipLib的源代码,您可以将其重建为.NET 4.0