C#.NET中的多目标32位和64位

Lea*_*ner 7 .net c#

假设我有一个基于C#开发的Windows应用程序.我想确保它在32位和64位两者上工作.但我不想一次又一次地更改配置设置或应用程序设置.有没有办法测试两种变体?

Ree*_*sey 12

有几种选择.

  1. 你可以定位AnyCPU.如果您的程序是100%C#/托管代码,没有本机依赖性,这将导致它在64位操作系统上运行64位,在32位操作系统上运行32位.

  2. 目标x86.这将导致它在任何地方运行32位,这在64位Windows(通过WOW64)上正常工作.如果您使用本机(32位)库,这也可以正常工作.

  3. 进行两次构建,并进行两次单独部署.这允许您使用本机代码并仍然在64位操作系统上运行64位,但更多的工作.

由于32位应用程序在64位操作系统上运行良好,因此很少有理由在64位本地运行程序.如果您处理大量数据并且真正需要访问比32位进程更大的内存空间,这通常才真正有用.在.NET中,这通常意味着如果要为程序使用超过1.2-1.6gb的RAM,则需要构建64位.否则,32位将无处不在.