C# .NET 4.0项目如何引用使用v2.0.50727运行时的程序集?

C# .NET 4.0项目如何引用使用v2.0.50727运行时的程序集?,c#,.net,visual-studio-2010,runtime,clr,C#,.net,Visual Studio 2010,Runtime,Clr,我有一个c#项目,我正在VS2010中将.NET3.5转换为.NET4.0。它引用了运行时版本为v2.0.50727的其他第三方dll 这怎么可能?我有点期待在建造或运行时出现警告或破损,但我没有。如果我编译的.net 4项目使用.net v4.0.30319运行时运行,它是否使用.net 2.0.50727运行时运行引用的dll?因此,我仍然需要安装旧版本的.net 或者引用的dll是否在v4.0.30319运行时中运行 要防止链路损坏,请执行以下操作: “是的,您可以从更高框架版本的应用程

我有一个c#项目,我正在VS2010中将.NET3.5转换为.NET4.0。它引用了运行时版本为v2.0.50727的其他第三方dll

这怎么可能?我有点期待在建造或运行时出现警告或破损,但我没有。如果我编译的.net 4项目使用.net v4.0.30319运行时运行,它是否使用.net 2.0.50727运行时运行引用的dll?因此,我仍然需要安装旧版本的.net

或者引用的dll是否在v4.0.30319运行时中运行


要防止链路损坏,请执行以下操作:

“是的,您可以从更高框架版本的应用程序中引用2.0类库,但不能反过来引用

你可以随时检查。(有移动到4,但一般来说,你应该是好的。) --布拉德·克里斯蒂

您可能看到的任何问题都会出现在2之前的版本中。(虽然我听说过去的4是一个重写,所以我不确定他们是如何处理向后兼容性的。我确信他们必须保证它的安全性,因为没有多少人希望侧载两个.net版本) --维桑维尔


不,这只是自动工作。v4 CLR对旧的v2程序集引用没有问题,它将它们一对一地转换为这些程序集的v4版本。或者,如果这是一个非框架程序集,则不会发生任何奇迹,它仍然可以读取v2程序集的元数据


非常有必要,如果4.0版不起作用的话,很少有程序员会选择升级到4.0版。有一些孤立的情况,4.0版中过期的错误修复会导致不同的行为,但这种情况非常罕见。

请查看此问题:[链接此处][1][1]:感谢所有出色的响应!我在这里也找到了答案-v4 CLR不会运行v2程序集。您必须安装v2 CLR。有关详细信息,请参阅我的答案。否。进程内并行功能仅在自定义CLR托管方案中启用。A[ComVisible]将.NET程序集加载到非托管进程是最常见的情况。