【问题标题】:Wise for Windows Installer 5.0 unable to call .exeWise for Windows Installer 5.0 无法调用 .exe
【发布时间】: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?

标签: windows-installer wise


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-22
    • 1970-01-01
    • 2013-05-09
    • 2014-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多