【发布时间】:2012-03-29 16:05:13
【问题描述】:
如果我有一个在 .NET 4 中编译的库并从 .net 4.5 可执行文件中引用它,那么该库中定义的操作将针对哪个版本的框架执行?
我有一个内置于 .net 4.5 的 cli 应用程序,它同时引用了 .net 4 和 .net 4.5 项目,我想知道两者是否会使用相同版本的 ADO.net 组件。
【问题讨论】:
如果我有一个在 .NET 4 中编译的库并从 .net 4.5 可执行文件中引用它,那么该库中定义的操作将针对哪个版本的框架执行?
我有一个内置于 .net 4.5 的 cli 应用程序,它同时引用了 .net 4 和 .net 4.5 项目,我想知道两者是否会使用相同版本的 ADO.net 组件。
【问题讨论】:
它们都将在同一个 CLR(本例中为 4.5)中运行。
使用 .NET
编辑:顺便说一句 - CLR(运行代码的运行时)和正在加载的程序集版本之间存在差异。
CLR 的版本控制进程的功能——它可以做什么,它可以加载哪些版本的程序集。例如,CLR 4.5 几乎可以加载所有程序集 (1.0 -> 4.5)。它们都将在 4.5 CLR 下运行。最重要的是,您不能在同一个进程中从同一个兼容频段运行两个版本的 CLR。 CLR 4.5 和 4.0 都被认为是相同的兼容频段,因此将加载其中一个或另一个。 CLR 1.0、1.1、2.0、3.0 和 3.5 都考虑在同一个兼容频段,因此只能加载其中一个。但是,您可以同时加载 CLR 3.5 和 CLR 4.5。
【讨论】: