【发布时间】:2016-09-09 07:52:21
【问题描述】:
我使用的是 Win7 64 位系统。我通过 exe 安装程序在我的计算机中安装了一个 32 位程序,即它不是由 msi 安装的。假设它的版本是 1.0。该程序文件夹有一个uninstall.exe 文件,单击该文件即可卸载该程序。
现在我使用 wise for windows installer 5.0 为下一个版本 2.0 制作了一个 msi 包。现在在 msi 安装文件之前,我想从 msi 本身调用我系统上的 uninstall.exe 并删除所有现有文件,以便 msi 安装可以是干净的。
我尝试在工具的 msi 脚本中使用目标命令中的执行程序。我已经给出了要在“installvalidate”命令下调用的 exe 的路径和名称。但我得到一个错误:
错误 1721。此 Windows 安装程序包有问题。无法运行完成此安装所需的程序。请联系您的支持人员或软件包供应商。
为了解决这个问题,我尝试了以下方法: 1. 使用管理员账户 2. 在 msi 的上下文菜单中提供以管理员身份安装选项 2.关闭杀毒软件 3. 在 cmd 中,输入“msiexec u/unregister”并回车。 再次在命令提示符下,输入“msiexec /register”
但这并没有帮助。我试图调用卸载,因为没有它,我在安装 msi 后得到两个控制面板条目。来自 exe 安装程序和来自 msi 安装程序。
检查了日志文件: 一些摘录...
操作于 12:05:26 结束:InstallValidate。返回值 1。
MSI (s) (6C:18) [12:05:26:714]:执行操作:uninstallexe
行动 12:05:26:卸载exe。
动作开始 12:05:26:卸载exe。
MSI (s) (6C:18) [12:05:26:714]: 注意: 1: 2235 2: 3: ExtendedType 4: SELECT Action,Type,Source,Target, NULL, ExtendedType FROM CustomAction WHERE Action = 'uninstallexe'
MSI (s) (6C:18) [12:05:26:730]: 注意: 1: 1721 2: uninstallexe 3: C:\Program Files (x86)\SOME_PROGRAM\ 4: uninstal.exe
调试:错误 2835:在对话框 ErrorDialog 上找不到控件 ErrorIcon
内部错误 2835。ErrorIcon、ErrorDialog
错误 1721。此 Windows 安装程序包有问题。无法运行完成此安装所需的程序。请联系您的支持人员或软件包供应商。操作:uninstallexe,位置:C:\Program Files (x86)\SOME_PROGRAM\,命令:uninstal.exe
MSI (s) (6C:18) [12:05:29:350]:产品:SOME_PROGRAM 2.0 -- 错误 1721。此 Windows 安装程序包有问题。无法运行完成此安装所需的程序。请联系您的支持人员或软件包供应商。操作:uninstallexe,位置:C:\Program Files (x86)\SOME_PROGRAM\,命令:uninstal.exe
操作于 12:05:29 结束:卸载exe。返回值 3。 行动于 12:05:29 结束:安装。返回值 3。
…… 没想太多。
【问题讨论】:
-
听起来这个软件的 1.0 版可以通过一个包含在 setup.exe 文件中的 MSI 文件来安装?如果是这种情况,您可以通过调用主要升级来可靠地卸载它。您确定 1.0 版不是 MSI 安装吗?
-
嗨 Stein,是的,我确定 1.0 版不是 MSI。这是我们第一次进行 MSI 打包。 MSI 可以在 MSI 安装过程开始之前在目标计算机上调用 exe 吗?或者 MSI 只能在安装 msi 后调用目标计算机上的 exe?