64 位计算机上的 32 位 COM dll

本文关键字:COM dll 计算机 | 更新日期: 2023-09-27 18:34:03

我有一个奇怪的微星!!

我已经在 32 位机器上安装了我的 86 位 msi(target=x64),除了一些无法加载并得到"尝试加载格式不正确的程序外,所有事情似乎都工作正常。(来自 HRESULT 的异常:0x8007000B)"此错误。

我注意到相同的COM dlls在开发环境中的64位计算机上工作正常。我不知道为什么微星安装的COM有问题。

问候

吉里什

64 位计算机上的 32 位 COM dll

如果使用 InstallShield 创建 MSI,则合并到注册表中的 COM 信息可能位于正确的位置,也可能不在正确的位置。由于 InstallShield 通常会在安装程序构建期间提取注册表信息,并在安装时将其合并到注册表中,如果您没有仔细检查这一点,它可能会也可能不会正确。

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

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