0

我使用的是 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”并按 Enter。再次在命令提示符下,输入“msiexec /register”

但这并没有帮助。我试图调用卸载,因为没有它,我在安装 msi 后得到两个控制面板条目。从 exe 安装程序和 msi 安装程序。

检查日志文件:一些提取...

操作于 12:05:26 结束:InstallValidate。返回值 1. MSI (s) (6C:18) [12:05:26:714]:执行操作:uninstallexe 操作 12:05:26:uninstallexe。动作开始 12:05:26:卸载exe。MSI (s) (6C:18) [12:05:26:714]: 注意: 1: 2235 2: 3: ExtendedType 4: SELECT Action, Type, Source, Target, NULL, ExtendedTypeFROM CustomActionWHEREAction= 'uninstallexe' MSI (s) (6C:18) [12:05:26:730]: 注意: 1: 1721 2: uninstallexe 3: C:\Program Files (x86)\SOME_PROGRAM\ 4: uninstal.exe DEBUG :错误 2835:在对话框 ErrorDialog 内部错误 2835 上找不到控件 ErrorIcon。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 Installer 程序包有问题。无法运行完成此安装所需的程序。请联系您的支持人员或软件包供应商。操作:卸载exe,位置:C:\Program Files (x86)\SOME_PROGRAM\,

操作于 12:05:29 结束:卸载exe。返回值 3。操作于 12:05:29 结束:安装。返回值 3。

...... 没有太多的想法。

4

1 回答 1

0

从您的帖子中不清楚外部程序是如何启动的,以及“从 msi 脚本中的目标命令执行程序”是什么意思(至少对我而言)。错误 1721 是 Windows Installer 错误,由于您似乎正在使用某种运行程序的脚本,这意味着脚本失败,而不是外部程序,因为 Windows Installer 没有启动外部程序 - 脚本是。因此,专注于“脚本”而不是外部程序或 Windows 安装程序。

详细的日志可能会有所帮助。使用 msiexec /I [path to msi file] /l*vx [path to text log file] 开始安装,看看是否有任何线索。

如果您的执行是在 InstallValidate 之前,那么它将不会在提升的情况下运行,因此如果脚本需要提升的权限,它将失败。

于 2016-09-14T17:14:08.360 回答