我的理解是.NET应用程序是跨平台的,因此纯.NET代码应该可以在x86或64位计算机上运行。除非您的.NET代码调用一些本地代码,否则它是平台相关的。这是真的吗?
您的代码可以编译成完全独立于平台的形式,或者您可以针对特定平台进行目标设置。标准建议是将库保持架构中立(即“任何 CPU”),并将可执行文件的目标设置为 x86。Visual Studio 2010 默认采用这种方法的原因在此处解释:AnyCPU 可执行文件通常不值得麻烦:
- 以两种非常不同的模式(x64 和 x86)运行会增加产品复杂性和测试成本。
- 32 位往往(稍微)更快。
- 某些功能在 x64 中不可用。
- 如果需要超过 4 GB 的地址空间,则应只针对 x64 进行目标设置,避免支持两个平台的成本。
当然,如果您只针对 x86,那么您的代码仍将通过 WoW64 在 x64 上运行。