2013-04-29 129 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