CLR版本控制+框架定位,预期的行为是什么?

时间:2012-01-20 17:29:59

标签: .net .net-4.0 .net-3.5 clr clr4.0

关于哪个版本的CLR将被加载到哪个版本中,有很多关于错误的信息,以期合并一些答案以消除与CLR版本相关的问题

  • 当我定位.Net Framework的第4版并构建时 VS2010我将使用clr版本4吗?什么版本的CLR会 如果我不添加任何配置,我引用的程序集 我的app.config文件?

  • 我可以强制我的应用程序使用不同版本的CLR吗?如果 是的,怎么样?

  • 当我定位.Net Framework的版本2或3.5时 在VS2010中构建,编译的程序集将使用哪个clr版本?

  • 如果我,我引用的程序集将使用哪个版本的CLR 不要在我的app.config文件中添加任何配置?

  • 我可以强制我的应用程序使用不同版本的CLR, (例如版本4)?如果有,怎么样?

  • 在目标新项目中引用v2程序集是否安全 V4?为什么呢?

1 个答案:

答案 0 :(得分:2)

  

当我定位.Net Framework的第4版并在VS2010中构建时,我将使用clr版本4吗?

  

我可以强制我的应用程序使用不同版本的CLR吗?如果有,怎么样?

不,没有其他版本可以运行以4.0为目标的程序。下一个框架版本(4.5)将不是并排版本,因此使用相同的CLR,不可能超越它。

  

当我定位.Net Framework的版本2或3.5并在VS2010中构建时,编译的程序集将使用哪个clr版本?

版本2.0.50727,它必须存在于机器上

  

如果我在app.config文件中没有添加任何配置,我引用的程序集将使用哪个版本的CLR?

当您定位2.0和3.5之间的任何框架版本时,

版本2.0.50727,当您定位4.0时,版本4.0.30319

  

我可以强制我的应用程序使用不同版本的CLR(例如版本4)吗?如果有,怎么样?

使用.exe.config文件中的<supportedRuntime version="v4.0"/>元素。

  

在针对v4的新项目中引用v2程序集是否安全?为什么

是。不测试这种情况是不安全的,可能存在您不小心依赖的框架错误的修复。