我的理解是.NET应用程序是独立于平台的,因此纯.NET代码应该在x86或64位机器上运行.除非您的.NET代码调用某些本机代码,否则它依赖于平台.真的吗?
您的代码可以编译为完全独立于平台,或者您可以定位特定平台.标准建议是使库架构中立(即"任何CPU")并将x86作为可执行文件的目标.这里解释了Visual Studio 2010默认使用此方法的原因:AnyCPU可执行文件通常比它们的价值更麻烦:
- 以两种非常不同的模式运行(x64和x86)会增加产品复杂性和测试成本.
- 无论如何,32位往往更快(稍微)一点.
- 某些功能在x64中不可用.
- 如果超过4 GB的地址空间是有用的,那么正确的做法是仅针对x64并避免支持两个平台的成本.
当然,如果您只是针对x86,那么您的代码仍将在x64到WoW64上运行.