2011-01-13 68 views
9

我有代码/支持基于.NET框架的应用程序,它始终运行在.NET 2上。今年,我们正在升级应用程序以使用.NET 3.5(或4?)。.NET Framework 3.5脱机安装程序是如何比.NET 4脱机安装程序大200 MB?

在这一变化准备,我们注意到,该离线安装程序(需要我们的客户群)的.NET 3.5比.NET 4离线安装更大的200 + MB的。

这是我的问题。

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

我们可以瞄准.NET 3.5,但分发.NET 4.换句话说,.NET 4向后兼容吗?假设.NET 4是唯一已安装的.NET应用程序,仍然可以锁定早期的框架?

如果我们的应用程序被编译为x86处理器(而不是任何CPU)你还是要分发的x64/x86的客户端配置文件,或者我们可以只分配86客户端配置文件?换句话说,如果我们的应用程序是为x86目标CPU编译的,我们是否可以分发x86客户端配置文件,即使它将安装在x64机器上?这样做的风险或陷阱?

的问题是,如果我们升级我们的应用程序,以面向.NET 4有很多的应用程序服务器,我们也必须升级其影响了其他一些应用。有什么想法吗?

塞特

+1

好问题,我自己也想知道同样的东西:) – Tom

回答

3

.NET 3.5完全向后.NET 3.0和.NET 2.0兼容 - 因此它包括了所有这两个先前版本的为好。另一方面,.NET 4.0从头开始,可以放弃弃用/不必要的代码。这也意味着.NET 4.0不一定会运行.NET 3.5代码 - 还有另一个SO answer on some of the breaking changes there

+0

这是不准确的,没有单独的版本的程序集。从2.0到3.5 SP1的所有基本程序集都具有程序集版本2.0.0.0 –

+1

@Hans的确如此。这就是为什么我说3.5包含所有以前的版本(该框架的版本与汇编版本无关) – bdonlan

8

这是因为先决条件。在.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%的大,针对客户端配置文件没有太多意义。