浏览了各种博客后,我对“多目标”或并行执行的术语感到非常困惑。
一些博客说,并行执行意味着一个进程中有两个版本的 CLR。其他一些人声称,它就像 .net 2.0 和 .net 3.0 程序集并排执行。我非常失望,我不确定谁对谁错。
我还在许多博客中看到,比如 Scott Hanselman 的博客等(这让我很困惑),如果目标框架是 4.0,.NET 4.5 的任何功能都将不起作用。我可以同意。但是我不能同意或理解这样一个事实,即如果我使用 4.5 构建它并在 4.0 中部署,4.0 的一个功能在 4.5 中已修复,它将隐藏。这里我不理解“隐藏”这个词,也没有人敢解释它的真正含义。这意味着运行时错误?这意味着编译时错误?不可能是这个。这意味着不一致的行为?例外 ?如果是这样,我想知道为什么 MS 让这种类型的灵活性在 VS 中进行开发。它有什么用途吗?我明白,第一种情况是有意义的,但不理解或不同意第二种情况。
我还在 Rick/Scott Hanselman 的帖子中看到,重大更改意味着,包括 CLR 在内的完整升级。然后,我应该将 3.0 视为主要升级,但不是因为它仍然使用 .NET 2.0 CLR。那为什么命名术语是 3.0.xx/3.5.xx ?就像 .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
对以上两个问题有什么想法吗?