3

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

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

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

4

2 回答 2

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 可能不适合您。

于 2013-04-29T13:14:44.537 回答
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-通常-more-trouble-then-they-re-worth。 aspx

于 2013-04-29T20:12:44.813 回答