Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个奇怪的微星!!!
我已经在 64 位机器上安装了我的 32 位 msi(target=x86),除了一些 COM dll 无法加载并得到“尝试加载格式不正确的程序。(来自 HRESULT 的异常) : 0x8007000B)”这个错误。
我注意到相同的 COM dll 在开发环境的 64 位机器上运行良好。我不知道为什么 msi 安装的 COM 有问题。
问候,
吉里什
如果您使用 InstallShield 创建 MSI,则合并到注册表中的 COM 信息可能位于也可能不在正确的位置。由于 InstallShield 通常会在安装程序构建期间提取注册表信息,并在安装时将其合并到注册表中,因此如果您没有仔细检查,它可能会或可能不会正确。
您需要确保 32 位组件的 COM 信息仅存在于 Wow6432Node 键下。
您的 C# 程序(exe 项目)必须编译为 x86(32 位)才能加载 x86 库。