2013-04-29 52 views
3

我們有一個基於.NET 2 Framework(C#)的小型應用程序,並且與Windows 8兼容,但只有32位(因爲我們的構建機器總是32位)。 我們現在正在尋找做一些改變,現在也創建一個64位版本。需要從.Net 2升級到更新的版本?

我的問題是現在,我們應該也升級到.NET Framework的新版本是爲未來做好準備,或者我們可以僅僅停留與我們現有的.NET Framework 2

它應該仍然與Windows XP和所有較新的Windows(32和64位)兼容。

+0

抽象是,爲什麼不,但如果它的工作,你不需要改變任何東西。 – Jodrell 2013-04-29 13:13:08

+0

多小?如果它很小,那麼即使升級到更高版本的.NET時出現問題,修復應該也是非常及時的。所以,我會跳起來。 – user1477388 2013-04-29 13:14:26

+0

http://msdn.microsoft.com/en-us/library/ff602939.aspx – 2013-04-29 13:14:55

回答

4

您可以隨時將其升級到版本4的框架,它仍然與以前版本的Windows兼容。

除此之外,您應該始終使用「任何CPU」構建.Net應用程序。它將生成中間代碼,稍後JIT編譯器將根據它正在執行的機器將其編譯爲32位或64位體系結構。

只有在您的.Net應用程序中引用任何非託管dll時,才應該擔心CPU架構。

是的,它仍然與Windows XP和Windows的所有新版本兼容。隨着升級到框架4,您必須擁有Windows XP sp 3,否則框架將無法安裝。

據我所知,framework 4.5只能安裝在windows 7或更高版本上,所以升級到framework 4.5可能不適合你。

+0

太棒了,我忘記了,嵌入式Windows XP如何? – FiveO 2013-04-29 13:16:26

+0

它會真的「始終」兼容嗎?如何打破變化http://www.asp.net/whitepapers/aspnet4/breaking-changes – user1477388 2013-04-29 13:16:58

+1

如果它不得不中斷,它將在第一時間中斷。如果你可以成功升級 - 用新框架構建和運行應用程序,它肯定會繼續工作。傳統框架補丁和更新從不打破二進制兼容性,但在極端情況下,可能會有例外。 – 2013-04-29 13:19:17

0

升級到.NET 3.5或4.0應該不會造成問題,缺點是安裝框架的人數會減少,而且您可以獲得更好的CLR並使用一些新的語言功能。

如果您不打算更改應用程序源,則不會利用任何新的語言功能,而只會爲最終用戶添加新的依賴關係(較新的框架)。在這種情況下,我看不出有什麼意義,從2.0到4.0。

如果您打算繼續開發應用程序,那麼我強烈建議轉換到3.5或4.0以獲得這些框架中的新功能,最重要的是LINQ。

請注意,4.5框架是與Windows XP不兼容,因此如果你想保持與XP向後兼容性您不能升級到4.5。只要你需要瞄準XP,你就會陷入4.0或更低的境地。

至於輸出平臺,我建議編譯如下:

  • 組件與本地相關性:顯式編譯x86和x64。
  • 入口點程序集(基本上是.exe的):針對x86和x64顯式編譯。
  • 所有其他程序集:編譯爲AnyCPU。

對於可執行文件使用顯式平臺是一個很好的原則,因爲它對用戶而言並不令人驚訝,並且允許64位系統上的用戶在需要時運行32位應用程序。看到這個博客文章的更長的答案http://blogs.msdn.com/b/rmbyers/archive/2009/06/09/anycpu-exes-are-usually-more-trouble-then-they-re-worth.aspx

+0

完美答案!那麼Windows XP仍然非常重要 - 所以4.5版本不是一個選項。我剛剛讀到嵌入式XP支持3.5,所以我想我們會繼續使用.NET 2,直到我們確實發現未來Windows版本的問題,但到目前爲止,.NET 2還在新的Windows 8機器上工作。謝謝 – FiveO 2013-05-01 06:19:28