应用程序找不到SysWOW64中的dll

时间:2012-05-23 15:47:00

标签: wix windows-installer 32bit-64bit dllimport syswow64

我正在开发一个使用一些自定义32位dll与USB设备通信的C#/ WPF应用程序。它是作为x86应用程序开发的,并与WIX一起安装。当我在64位计算机上安装软件包时,程序文件将按照我的预期安装到Program Files(x86)。

使用WIX将dll安装到SystemFolder。在32位计算机上,这意味着C:\ Windows \ System32。在64位上,它们最终位于C:\ Windows \ SysWOW64中。这没关系,但是当我运行我的应用程序时,它无法找到dll(它通过[DllImport ...]使用它们。)

那么,让我的应用程序找到dll的正确方法是什么,无论它们是在System32还是SysWOW64中?

由于 汤姆

1 个答案:

答案 0 :(得分:1)

如果它是默认的C#应用​​程序,它将自动成为64位Windows上的64位应用程序(在32位Windows上C3默认为32位)。进入开发应用程序中的项目属性,并将架构(我认为;我现在没有Studio)显式设置为32位。如果它作为64位应用程序运行,它将无法使用您的32位DLL。