3

我有 ac# 项目,我正在 VS2010 中从 .net 3.5 转换为 .net 4.0。它引用了运行时版本为 v2.0.50727 的其他 3rd 方 dll。

怎么会这样?在构建或运行时,我有点期待警告或损坏,但我没有。如果我编译的 .net 4 项目使用 .net v4.0.30319 运行时运行,它是否使用 .net 2.0.50727 运行时运行引用的 dll?因此,我还需要安装旧版本的 .net 吗?

还是引用的 dll 在 v4.0.30319 运行时中运行?

4

2 回答 2

5

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

相当必要的是,如果这不起作用,很少有程序员会选择升级到版本 4.0。有一些孤立的案例,其中 4.0 中的过期错误修复导致不同的行为,但它们非常罕见。

于 2013-09-18T14:35:42.317 回答
0

评论的问题中防止链接腐烂:

“是的,您可以从更高框架版本的应用程序中引用 2.0 类库,但反之则不行。

您可以随时检查.NET 版本兼容性。(有一些注意事项移至 4,但一般来说你应该没问题。)--Brad Christie

您可能看到的任何问题都来自 2 之前的版本。(虽然我听说过去 4 是重写,所以我不确定他们如何处理向后兼容性。我相信他们必须保证它的安全,因为没有多少人想要侧载两个 .net 版本”--wsanville

.NET 4 配置中的“useLegacyV2RuntimeActivationPolicy”有什么作用?

于 2013-09-18T14:32:55.910 回答