在 64 位平台上为 32 位编译程序集
我应该选择什么选项来在 64 位平台上为 32 位平台服务器编译程序集。 目前我正在尝试发布到 32 位服务器。 我在 Windows Vista 计算机上使用 VS2005 来构建我的项目,然后在服务器上发布,但出现错误。 知道如何解决这个问题。
我应该在 64 位计算机上使用 AnyCPU 选项还是混合平台选项。 x86 的选项也被禁用,我不知道为什么。
What option should I select for compliing assemblies on a 64bit plaform for a 32bit platform server. As currently I am trying to publish to a 32bit server. I am using VS2005 on a windows Vista machine to build my project and then publish on server but I am getting errors. Any idea how can I solve this problem.
Should I use AnyCPU option on a 64bit machine or Mixed Platform option. Also option of x86 is disabled and I dont know why.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用任意CPU。 只要您的程序集没有任何直接的非托管依赖项或对标记为特定 CPU 的程序集的依赖项,那么您的程序集就可以在 64 或 32 位上正常工作
Use AnyCPU. As long as your assembly doesn't have any direct unmanaged dependancies or dependancies on assemblies which are marked for a specific CPU then your assembly will work fine on 64 or 32 bit
假设您使用托管语言工作,那么编译到“AnyCPU”应该是跨平台的(64/32 位),因为生成的 IL 不会转换为机器指令,直到代码运行时被 JITted。
有极少数例外,如果您使用某些依赖于指针大小的构造等,您可以获得位依赖性,但这些通常不会出现在您的代码中,尽管在您的代码上运行 FxCop 不会有什么坏处。代码以确保(FxCop 中有一个涉及可移植性的部分涵盖了这些问题)
Assuming you are working in a managed language, then compiling to 'AnyCPU' should be cross-platform (64/32 bit), because the generated IL is not turned into machine instructions until the code is JITted when it is run.
There are a very few exceptions where you can get bit-ness dependencies if you use certain constructs that rely on the size of pointers, etc. but these generally do not come up in your code, although it would not hurt to run FxCop over your code to make sure (there is a section in FxCop dealing with portability that covers these issues)