Bin DLL的目标是不同的.NET框架可能吗?

时间:2010-09-22 17:10:23

标签: asp.net visual-studio-2008 visual-studio-2010 .net-3.5 .net-4.0

我有一个目前在.NET 3.5下运行的网站。我想让它在4.0下运行,但我使用许多第三方DLL进行压缩,Bit.ly,Twitter,XML等。如果这些DLL是为.NET 3.5创建的(在VS2008中),它们是否会继续运行3.5以下?或者4.0以某种方式向后兼容旧库?

2 个答案:

答案 0 :(得分:2)

  

如果这些DLL是为.NET 3.5创建的(在VS2008中),它们会继续在3.5下运行吗?

没有在3.5下运行的东西。 .NET程序集是针对.NET版本编译的,然后由CLR加载和执行。 .NET 3.5使用CLR 2.0,而.NET 4.0使用CLR 4.0。

因此,如果您的应用程序在CLR 4.0下运行,那么这些程序集将在CLR 4.0下运行,CLR 4.0向后兼容针对.NET 3.5编译的程序集。如果这些程序集调用非托管函数,可能会有一些警告,否则它们应该可以正常工作。

继续尝试运行它们。

答案 1 :(得分:0)

如果它们是纯托管代码,我期望它们在.NET 4下工作正常。如果它们使用非托管API,我相信可能会有一些问题,您可能需要重建这些库 - 但如果它们是开源的,那应该不是问题。

(我知道有一个数据库提供商至少直到最近才提供.NET 3.5 DLL,而且它们在.NET 4中不能正常工作,因为他们通过P / Invoke使用了非托管API。我不知道不幸的是,这个领域发生了什么变化的细节 - 我倾向于像瘟疫一样避免P / Invoke:)