在64位平台上为32位编译程序集

时间:2009-06-16 08:52:26

标签: .net windows-vista 64-bit 32-bit publish

对于32位平台服务器,我应该选择在64位平台上编译程序集的选项。目前我正在尝试发布到32位服务器。我在Windows Vista机器上使用VS2005来构建我的项目然后在服务器上发布但我收到错误。我知道如何解决这个问题。

我应该在64位机器或混合平台选项上使用AnyCPU选项吗? x86的选项也被禁用,我不知道为什么。

2 个答案:

答案 0 :(得分:2)

使用AnyCPU。只要您的程序集在标记为特定CPU的程序集上没有任何直接的非托管依赖项或依赖项,那么您的程序集将在64位或32位上正常工作

答案 1 :(得分:1)

假设您使用的是托管语言,那么编译为'AnyCPU'应该是跨平台的(64/32位),因为生成的IL在运行时代码被JIT打开之前不会转换为机器指令。

如果您使用某些依赖于指针大小等的构造,那么很少有例外情况可以获得位依赖性,但这些通常不会出现在您的代码中,尽管运行不会有害对代码进行FxCop以确保(FxCop中有一节涉及覆盖这些问题的可移植性)