运行 msi 在 32 位 win7 中导致“模块注册失败”,但在 64 位 win7 中有效

Running msi causes “module failed to register” in 32bit win7,but works in 64bit win7

我正在尝试部署我的项目并创建一个安装程序。我在 vs2005 中创建了一个 msi 文件。当 运行 .msi 安装向导时,出现错误:

"Module abc failed to register. HRESULT -2147010895. Contact your support personnel."

注册失败的模块是一个C++ com dll.But在x64平台上它可以工作fine.while我把解决方案的targetPlatform改成x86,并且把dll替换成win32 dll的版本,然后安装在 32 位 win7 计算机上,我得到 "Module failed to register"。顺便说一句,我将dll的寄存器属性设置为vsdrfCOMSelfReg的值。

有人知道这个问题的解决方案吗?谢谢!

您很可能没有安装所需的 VC++ 运行时支持文件。目标机器将需要您使用的任何 VC++ 运行时架构,x64 或 x86。

包含合并模块将不起作用,因为您在安装时使用的是 SelfReg,并且在安装中进行注册时它们不可用。