All,
我有一个在 32 位计算机上运行的 .NET 托管应用程序。
我可以将其编译为 64 位并将其移植到 64 位计算机上。
不过,我依赖于一些 32 位程序集的第 3 方 DLL。
我可以将 64 位和 32 位程序集混合在一起在 64 位计算机上执行吗?
谢谢 !
如果它们在同一进程中运行则不会。
操作系统上的进程无法加载不同“位”的程序集。一旦选择,所有组件都必须符合要求。您将得到一个BadImageFormatException
通常,如果您尝试将 32 位 DLL 加载到 64 位进程中,反之亦然。
三个选项:
- 获取有问题的 DLL 的 64 位版本(理想)。
- 始终以 32 位独占方式运行(通常是所选路径)。
- 在另一个进程中运行有问题的 DLL,并使用 IPC 之类的东西跨进程边界进行通信(极端,但我不得不这样做一次)。
在 64 位操作系统上以 32 位运行本身并没有什么问题,不要陷入认为它会变慢的陷阱。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)