我相信在制作.Net程序时,架构类型(x86 vs x64)会被抽象出来,但还有其他任何可能导致问题的因素吗?
谨防秘密进行win32调用的第三方COM库或第三方.NET库.这就是我们最头疼的地方.
从MSDN doco,以及其他考虑因素:
在许多情况下,程序集将在32位或64位CLR上运行相同的程序.程序在64位CLR运行时表现不同的一些原因包括:
包含根据平台更改大小的成员的结构,例如任何指针类型.
包含常量大小的指针算法.
不正确的平台调用或使用Int32处理句柄而不是IntPtr的COM声明.
将IntPtr转换为Int32
此外,默认文件位置.
本文有很多值得注意的好问题:http: //osnews.com/story/20330/Windows_x64_Watch_List
就个人而言,我的老板有64位Vista计算机,我以32位模式编程.我们遇到了以下问题:
32位应用程序的注册表被隐藏(有点)到Wow6432Node文件夹中.并非您用于在注册表中查找路径的所有应用程序都将位于该节点中(例如,SQL Server不会).
C:\ Windows文件夹中的SysWow64可能导致DLL不在需要的地方(我们遇到此问题与第三方许可组件有关).
有时您需要的文件位于"C:\ Program Files(x86)",而不是"C:\ Program Files".太糟糕了.