我正在尝试安装一个应用程序(.msi),我使用WiX安装程序创建了一个exe(它有依赖项)。我尝试将其安装在某些电脑上,效果非常好。但在其中一个系统中,当它尝试安装 msi 时,它会给出错误并回滚安装(这是正常的)。
无法弄清楚为什么它没有安装在这台特定的机器上。有什么建议吗?
这篇文章似乎表明这是一个一般性问题 - 系统需要重新启动:
https://support.microsoft.com/en-us/kb/974061
所以这是要尝试的第一件事。如果问题仍然存在,则可能与系统陷入认为安装仍在运行的状态有关。他们可以查看此内容以查看可能影响此问题的注册表项:
http://www.installsite.org/pages/en/msifaq/error/1618.htm
如果您安装生成日志的 MSI 文件,则它可能会显示发生的情况:msiexec /I [msi 文件的路径] /l*vx [文本日志文件的路径]
您的设置中可能存在某些问题导致该计算机上出现此问题,特别是如果它执行其他设置或驱动程序安装(或类似的操作),使系统处于需要重新启动才能继续安装的状态。此外,有时添加 MsiSystemRebootPending 属性作为启动条件很有用,这样您就不会在重新启动挂起时开始安装:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa370492(v=vs.85).aspx
错误(来自评论)-2147024891是0x80070005,访问被拒绝。似乎偶尔会出现错误,系统帐户无法访问某些文件夹,因此这可能是这种特殊情况下的问题。如果对 C:\ 驱动器(可能还有其他驱动器)的访问不允许对 SYSTEM 帐户的完全访问,则可能会导致一些奇怪的下游问题。
它会下载一个疑难解答程序并且可以正常工作!故障排除后,我可以卸载我的程序。
导致我的错误是在我的 Products.wxs (WiX 安装项目)中出现此错误:
<InstallExecuteSequence>
<Custom Before="InstallInitialize" Action="WixCloseApplications">REMOVE = "ALL"</Custom>
</InstallExecuteSequence>
我也遇到过同样的问题。对于未来遇到类似问题的用户。
就我而言,我使用 Process Monitor 来检查安装过程。
发现错误 (
MainEngineThread is returning 1625
) 仅在 RegQueryKey-SUCCESS-RegOpenKey-SUCCESS-RegQueryValue-NAME NOT FOUND-RegCloseKey 中发生。
在我禁用 KEY 后(通过删除或重命名)。 安装可以继续,创建新的键值,视为
Product not registered: beginning first-time install
。
所以,原因似乎是检测到一些旧的未清理的注册表(尤其是在
HKCR\Installer\Products
处)。
另外,可以先尝试检查
msiexec.exe
的日志。搜索我的问题时,我在这里谷歌,谢谢分享。
我将我的总结发布在SOLIDWORKS VC VSTA安装权限配额策略组相关问题(大部分是中文,但有很多参考资料)。
我在 Windows 上安装 python 版本时遇到了同样的问题,我发现它在以管理员身份执行安装程序后就可以工作了。