全部,
我有一个在32位计算机上运行的.NET托管应用程序。 我可以将它编译为64位并将其移植到64位机器上。 但是,我依赖于一些32位程序集的第三方DLL。 我可以将64位和32位组件混合在64位机器上执行吗?
谢谢!
答案 0 :(得分:4)
如果它们在同一个进程中运行,则不会。
OS上的进程无法加载不同“bit-ness”的程序集。一旦选定,所有组件都必须符合要求。如果您尝试将32位DLL加载到64位进程中,则通常会得到BadImageFormatException
。反之亦然。
三个选项:
在64位操作系统上以32位运行没有任何内在错误,不要陷入认为速度较慢的陷阱。
答案 1 :(得分:0)
根据我自己的经验,没有。
我开发了一个依赖于32位iSeries COM库的系统,这是我无法控制的。遇到问题,并通过编译32位版本的应用程序来修复它们。
确保不要将任何CPU定位,而是将Visual Studio设置为编译为x86。
另请注意,生成的DLL和可执行文件的位置会略有不同。
e.g。
bin \ x86 \ Debug
而不是
BIN \调试
答案 2 :(得分:0)
不要忘记,如果你运行32位,可能不会慢,但你的内存可能不足。