我有一个运行在32位机器的.NET托管应用程序。 我很好,将它编译为64位并将其移植到64位机器上。 但是我依赖于一些第三方DLL是32位程序集。 我可以将64位和32位程序集一起在64位机器上执行吗?
谢谢!
我有一个运行在32位机器的.NET托管应用程序。 我很好,将它编译为64位并将其移植到64位机器上。 但是我依赖于一些第三方DLL是32位程序集。 我可以将64位和32位程序集一起在64位机器上执行吗?
谢谢!
若它们在同一进程中运行。
OS上的进程无法加载不同“比特级”的程序集。一旦选定,所有组件必须符合。通常,如果您尝试将32位DLL加载到64位进程中,您将得到一个BadImageFormatException
,反之亦然。
三个选项:
在64位操作系统上运行32位操作系统本身并没有什么错误,不要陷入它认为速度会变慢的陷阱。
从我自己的经验来看,没有。
我开发了一个系统,它依赖于我无法控制的32位iSeries COM库。遇到问题,并通过编译32位版本的应用程序来修复它们。
只需确保不是针对任何CPU,而是将Visual Studio设置为编译为x86。
另外请注意,您生成的DLL和可执行文件的位置稍有不同。
例如
斌\ 86 \调试
代替
斌\调试
不要忘记,如果你运行32位它可能不会更慢,但你可能会用完内存。