假设我有一个基于C#开发的Windows应用程序。 我想确保它在32位和64位上都能正常工作。 但我不想一次又一次地更改配置设置或应用程序设置。 有没有一种方法可以测试这两种变体?
有几个选择:
你可以选择目标为 AnyCPU
。如果你的程序是100% C#/托管代码,并且没有本地依赖项,那么它将在64位操作系统上运行64位,在32位操作系统上运行32位。
目标为 x86。这将导致它在任何地方都以32位运行,这在64位Windows上可以正常工作(通过WOW64)。如果你使用本地(32位)库,那么这也会正常工作。
进行两次构建和两次单独部署。这允许你使用本地代码并仍在64位操作系统上运行64位,但需要更多的工作。
由于32位应用程序在64位操作系统上运行良好,因此很少有原因在64位中本地运行程序。这通常只有当你处理大量数据并真正需要访问大于32位进程中可获得的内存空间时才会受益。在.NET中,这通常意味着如果你的程序要使用超过1.2-1.6GB的RAM,则需要构建64位。否则,32位将在所有地方正常工作。