需要从.Net 2升级到更新版本吗?

时间:2013-04-29 13:10:34

标签: c# .net

我们有一个基于.NET 2 Framework(C#)的小应用程序,并且与WindowsXP兼容到Windows 8,但只有32位(因为我们的构建机器也总是32位)。 我们现在正在寻求进行一些更改,现在也创建一个64位版本。

我现在的问题是,我们是否应该升级到更新版本的.NET Framework 以便为将来做好准备,或者我们是否可以继续使用现有的.NET Framework 2。

它应该仍然与Windows XP和所有较新的Windows(32位和64位)兼容。

2 个答案:

答案 0 :(得分:4)

您始终可以将其升级到框架的第4版,它仍然可以与之前版本的Windows兼容。

除此之外,您应该始终使用“Any CPU”构建.Net应用程序。它将生成中间代码,稍后JIT编译器将根据正在执行的机器将其编译为32位或64位架构。

只有在.Net应用程序中引用任何非托管dll时,才应该为CPU架构而烦恼。

是的,它仍将与Windows XP和所有新版Windows兼容。升级到框架4后,必须安装Windows XP sp 3,因为框架不会安装。

据我所知,框架4.5只能安装在Windows 7或更高版本上,因此升级到框架4.5可能不适合您。

答案 1 :(得分:0)

升级到.NET 3.5或4.0应该不会造成问题,缺点是安装框架的人数会减少,并且好处是您可以获得更好的CLR并且可以使用一些新的语言功能。

如果您不打算更改应用程序源,则不会利用任何新的语言功能,并且您只会为最终用户添加新的依赖项(更新的框架)。在这种情况下,我无法看到从2.0到4.0的任何一点。

如果您要继续开发应用程序,那么我强烈建议您使用3.5或4.0来获取这些框架中的新功能,最重要的是LINQ。

请注意4.5 Framework与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