【发布时间】:2011-07-13 18:36:04
【问题描述】:
这可能是一个愚蠢的问题,但谷歌搜索并不是很有效。维基百科在这方面也没有帮助。
我有一个需要 .NET Framework 3 的库,但我安装了版本 4,我需要安装一些东西吗?同样的问题也适用于其他人何时下载我的代码:我需要给出什么指令。
【问题讨论】:
标签: .net backwards-compatibility
这可能是一个愚蠢的问题,但谷歌搜索并不是很有效。维基百科在这方面也没有帮助。
我有一个需要 .NET Framework 3 的库,但我安装了版本 4,我需要安装一些东西吗?同样的问题也适用于其他人何时下载我的代码:我需要给出什么指令。
【问题讨论】:
标签: .net backwards-compatibility
不,您不需要安装任何东西。 CLR 4.0(由 .NET 4.0 使用)可以加载和运行针对 .NET 3.0 编译的程序集。但与构建它们的 CLR 2.0 相比,它们将在 CLR 4.0 下运行。虽然没有必要,但如果您有源代码,您可以将其重新编译为目标 .NET 4.0。反过来当然不是这样:为 .NET 4.0 构建的程序集将无法在 CLR 2.0 上运行。
正如@marc_s 在 cmets 中提到的那样 如果您确实需要 CLR v2 (.NET 2.0/3.0/3.5) 以用于某些原因,则需要单独安装合适的 .NET 框架 - .NET 4 可以不包括“旧”CLR v2。
【讨论】:
嗯,严格来说,.NET 4 不包括 .NET 3。它甚至基于不同的运行时。但是,.NET 4 应用程序可能会使用 .NET 3 库(您可以在 app.config 中进行一些特殊设置)。更好的方法当然是获取 .NET 4 版本的库。
(例如,如果您的应用程序使用混合模式程序集,您可能需要useLegacyV2RuntimeActivationPolicy 标志。)
【讨论】: