【问题标题】:CLR Versioning + Framework Targeting, what is expected behaviour?CLR 版本控制 + 框架目标,预期的行为是什么?
【发布时间】:2012-02-15 06:08:11
【问题描述】:

关于程序集将被加载到哪个 CLR 版本中存在大量错误信息,因此希望合并一些答案以消除与 CLR 版本相关的问题

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

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

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

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

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

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

【问题讨论】:

  • 主题可能很复杂,但问题都是相关的。以我的拙见,将其拆分为单独的问题只会使查看全局答案变得更加困难。我自己并不急于回答,最好通过在同一个线程中包含所有这些相关的答案来全面了解这个主题。像这样的主题肯定会成为社区 wiki 的一个很好的候选者吗?
  • 我们真的不再做维基了。它们是合法的问题,只是您无法在一个答案中合理地回答所有问题。而且它们并没有那么相关。以最后两个为例。实际上,现在我看,似乎二和五是一样的。请考虑编辑只问第一个问题。

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


【解决方案1】:

当我以 .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.50727 当您针对 2.0 和 3.5 之间的任何框架版本时,版本 4.0.30319 当您针对 4.0 时

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-07
    • 2019-05-22
    • 2014-06-23
    • 1970-01-01
    • 2011-03-16
    • 2016-03-08
    • 1970-01-01
    相关资源
    最近更新 更多