2011-01-13 67 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%的大,針對客戶端配置文件沒有太多意義。