.NET框架3.5离线安装程序为什么比.NET 4离线安装程序大200 MB?

9

我有一个基于.NET框架构建的应用程序,一直在运行.NET 2。今年我们将升级应用程序以使用.NET 3.5(或4?)。

在为此更改做准备时,我们注意到,离线安装程序(我们的客户群体所需).NET 3.5比.NET 4离线安装程序要大200多MB。

以下是我的问题。

为什么dotnet 3.5安装程序比4离线安装程序要大得多?

我们可以针对.NET 3.5进行目标设置,但分发.NET 4吗?换句话说,.NET 4是否向后兼容?假设.NET 4是唯一安装的.NET,应用程序仍然可以针对早期框架吗?

如果我们的应用程序是针对x86 CPU编译的(而不是任何CPU),您是否仍然必须分发x64 / x86客户端配置文件,还是只能分发x86客户端配置文件?换句话说,即使我们的应用程序针对x86目标CPU编译,我们是否可以在x64计算机上安装x86客户端配置文件?这样做有任何风险或陷阱吗?

问题在于,如果我们将我们的应用程序升级为目标.NET 4,那么我们还必须升级许多应用程序服务器,这会影响其他许多应用程序。有什么想法吗?

Seth


1
好问题,我也曾经想过这个问题 :) - Tom
2个回答

10

这是因为有先决条件。.NET 4.0安装程序要求目标计算机更新到以下版本:

  • XP SP3
  • Vista SP1
  • Server 2003 SP2
  • Server 2008或Win7

3.5 SP1的安装程序则要宽松得多,甚至可以在原始版本的XP上运行。为了实现这一点,它需要包含许多核心Windows组件的更新。该231 MB安装程序中的很大一部分实际上并不是.NET组件。

值得注意的另一点是,在.NET 4.0中,客户端配置文件和完整版本之间的差异基本消失了。完整版本只比客户端配置文件大15%,因此针对客户端配置文件没有太多意义。


3

.NET 3.5完全向后兼容.NET 3.0和.NET 2.0,因此也包括这两个版本的所有内容。另一方面,.NET 4.0从头开始,可以舍弃已过时/不必要的代码。这也意味着.NET 4.0不能保证无需更改地运行.NET 3.5代码-有关于一些破坏性变化的信息,请参见此Stack Overflow答案


这不太准确,程序集没有单独的版本。从2.0到3.5 SP1的所有基本程序集都具有程序集版本2.0.0.0。 - Hans Passant
1
@Hans,确实。这就是为什么我说3.5包括所有先前的版本(框架的版本与程序集版本关系不大)。 - bdonlan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接