64位机器上的32位COM dll

时间:2012-05-14 15:58:53

标签: c# dll com 64-bit

我有一个奇怪的msi !!!

我已经在64位机器上安装了我的32位msi(target = x86),除了一些无法加载的COM dll并且“尝试加载格式不正确的程序”之外,每件事似乎都能正常工作。来自HRESULT的异常:0x8007000B)“此错误。

我注意到相同的COM dll在开发环境中的64位机器上工作正常。我无知为什么msi安装COM有问题。

此致

吉里什

2 个答案:

答案 0 :(得分:0)

您的C#程序(exe项目)必须编译为x86(32位)才能加载x86库。

答案 1 :(得分:0)

如果您使用InstallShield创建MSI,则合并到注册表中的COM信息可能位于或未位于正确的位置。由于InstallShield通常会在安装程序构建期间提取注册表信息,并在安装时将其合并到注册表中,如果您没有对此进行双重检查,它可能会或可能不会使事情正确。

您需要确保32位组件的COM信息仅存在于Wow6432Node键下。