gpt4 book ai didi

c# - .NET 中的多目标

转载 作者:可可西里 更新时间:2023-11-01 08:49:48 24 4
gpt4 key购买 nike

浏览了各种博客,我对“多目标”或并行执行的术语感到很困惑。

  1. 一些博客说,并行执行意味着一个进程中有两个版本的 CLR。其他一些人声称,它就像 .net 2.0 和 .net 3.0 程序集并排执行。我非常失望,因为我不确定谁对谁错。

  2. 我还在许多博客(如 Scott Hanselman 的博客等)中看到(这很令人困惑),如果目标框架是 4.0,.NET 4.5 的任何功能都将不起作用。我可以同意。但是我不能同意也不能理解这样一个事实,即4.0的一个特性,其bug在4.5中被修复,如果我使用4.5构建它并在4.0中部署它将会隐藏。在这里我不理解“隐藏”这个词,也没有人敢解释它到底是什么意思。这意味着运行时错误?这意味着编译时错误?不可能是这个。这意味着不一致的行为?异常(exception) ?如果是这样的话,我想知道为什么 MS 在 VS 中允许这种类型的开发灵 active 。它有任何用途吗?我明白,第一种情况是有意义的,但不理解或不同意第二种情况。

  3. 我还在 Rick/Scott Hanselman 的帖子中看到,重大更改意味着完成升级,包括 CLR。然后,我应该将 3.0 视为主要升级,但它不是,因为它仍然使用 .NET 2.0 CLR。那为什么命名术语是 3.0.x.x/3.5.x.x 呢?就像 .NET 4.0.30319.x 中的情况一样,CLR 也是新的,所以我同意这一点。我很惊讶谁是正确的。这些人或 MSDN 都违背了他们的原则(就像 MSDN 所说的格式为 Major.Minor.Build.Revision,而 Hanselman 或其他人说,Major 意味着 CLR 升级,而它不在 .NET 3.0 中)

引用:http://www.hanselman.com/blog/NETVersioningAndMultiTargetingNET45IsAnInplaceUpgradeToNET40.aspx

http://msdn.microsoft.com/en-us/library/bb822049(v=vs.110).aspx

对以上两个问题有什么想法吗?

最佳答案

首先,您必须了解多目标和并行执行之间的区别。

  • Multitargettting 是您编译应用程序的能力在不同于您用于开发应用程序的 CLR 运行时上运行(对于 VS2010 为 .NET 4.0,对于 VS 2012 为 .NET 4.5)。 VS 中的多目标确保您的应用程序不会使用 CLR 运行时中引入的任何类型或方法,并且版本中的基类库 (BCL) 比您的目标版本更新。VS 通过复制在每个运行时中使用的 DLL 副本来实现这一点。
  • 并排执行 意味着您可以安装多个版本的 CLR 运行时个人电脑。从 CLR 4.0 开始不再正确。您现在可以在同一进程中加载​​ CLR 4较旧的运行时(CLR 1.1 或 CLR 2.0)。请阅读http://msdn.microsoft.com/en-us/magazine/ee819091.aspx(“行为概述”部分)了解更多详情。

关于您的问题:

  1. 请阅读上述 MSDN 文章中的链接。
  2. 术语隐藏意味着当您在 .NET 4.5 下调试应用程序时,您有 BCL 版本和错误修复在您部署到 .NET 4.0 后,这可能会在后面打击您,因为该 BCL 版本尚未修复该错误。您将遇到运行时错误,您可以根据您遇到的错误类型以某种方式观察到这些错误。这可能是安全问题、应用程序中的逻辑错误或运行时异常。如果你想捕获这些问题您始终可以在仅安装了 .NET 4.0 的干净 PC 上进行测试。
  3. 您提供的两个链接不会以任何方式相互干扰。 Scott 和 MSDN 都是正确的解释安装了哪个版本的 .NET 和哪个版本的 CLR 运行时。

关于c# - .NET 中的多目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15569112/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com