.NET版本向后兼容吗?


8

多年来,.NET的各种版本已通过WSUS部署到我的客户端计算机上。现在看来,在许多计算机上,这些安装相互之间是软管,并且某些.NET安全更新正在失败。

我确认可以运行.NET清理工具来摆脱客户端上的所有.NET安装,然后可以通过WSUS推出.NET 3.5。这似乎已经解决了我尝试过的机器上的问题。

所以问题是:如果我有.NET 3.5,是否有任何理由也要安装以前的版本?

Answers:


14

向后兼容是一个不好的名词。.NET 1.0、1.1和2.0是它们自己的框架,彼此之间没有兼容性。.NET 3.0和3.5是使用.NET 2.0基本框架的2.0框架的超集,带有附加的dll,以提供附加功能(3.0包​​含WCF和WWF之类的东西,3.5包含LINQ之类的东西)。在应用需求方面:

  • 1.0应用程序需要安装.NET 1.0。
  • 1.1应用程序需要安装.NET 1.1。
  • 2.0应用程序需要安装.NET 2.0、3.0或3.5。
  • 3.0应用程序需要安装.NET 3.0或3.5。
  • 3.5应用程序需要安装.NET 3.5。

我相当确定.NET 4.0遵循与2.0-3.5(带有附加功能dll的2.0基础)相同的模型。因此,安装.NET 3.5将覆盖.NET 2.0-3.5应用程序。如果运行任何1.1应用程序(与1.0应用程序相同),则需要安装.NET 1.1。


4
我很确定.net 4是一个全新的CLR,可以与任何以前的版本并行运行-它不仅仅是像3 / 3.5那样的扩展包
Michael Haren 2010年

@Michael-尚未找到确定的信息,但看来您是对的。我的错。
Evan M.

+1。很棒的答案。我无法告诉您我必须向我们的支持工程师解释多少次。
joeqwerty,2010年

2
msdn.microsoft.com/en-us/library/bb822049.aspx是确认您在上面陈述的内容的文章。是的,4.0是独立的,不依赖于其他版本。
拉里·史密斯米尔

2

.NET在一定程度上向后兼容,但是您必须在框架的不同版本之间进行比较。他们所声明的是它是并行兼容的,这是您面临的问题。绝对有理由安装其他版本。可以编写针对特定版本的应用程序,如果计算机上不存在该版本,则该应用程序将失败。


那是我的想法。我想我必须逐个机器地执行此操作。
博登

@Boden:您通常可以将应用切换到不同的框架,但是它需要修改该应用的app.config或web.config文件。但是,我强烈建议您这样做,因为这可能会给应用程序带来很多问题,从而完全破坏它。
squillman 2010年

通过现在部署3.5和4月份发布的4.0,您可能会获得一些非常好的覆盖。3.5具有与2相同的CLR,因此您无需执行2和3.5。很少有应用程序能够运行1.1,因此您可以不使用它,而仅在极少数情况下才需要包含它。
Michael Haren

-1

不,.net不向后兼容。MS保留进行更改的权利。2.0至3.5是IIRC,但这更是“幸运的一面”。概念是已经安装了所有需要的框架,并且一个应用程序针对了要针对其进行编译的框架-这允许MS清理新版本并引入不兼容的更改。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.