Logging 从InstallShield.EXE打开MSI登录?

Logging 从InstallShield.EXE打开MSI登录?,logging,windows-installer,installshield,Logging,Windows Installer,Installshield,我有一个软件更新,给了我一个错误对话框,没有办法看到错误日志 我运行以安装更新的可执行文件在文件的产品名称中标识为InstallShield。我很好地通过了所有InstallSheild向导和对话框,但是当它执行.msi文件时,我得到一个对话框,标题为Windows Installer,文本为,无法打开此修补程序包。验证修补程序包是否存在以及您是否可以访问它,或者与应用程序供应商联系以验证这是一个有效的Windows Installer修补程序包。 我了解到,如果您只有一个纯.msi文件,而没有

我有一个软件更新,给了我一个错误对话框,没有办法看到错误日志

我运行以安装更新的可执行文件在文件的产品名称中标识为InstallShield。我很好地通过了所有InstallSheild向导和对话框,但是当它执行.msi文件时,我得到一个对话框,标题为
Windows Installer
,文本为
,无法打开此修补程序包。验证修补程序包是否存在以及您是否可以访问它,或者与应用程序供应商联系以验证这是一个有效的Windows Installer修补程序包。

我了解到,如果您只有一个纯.msi文件,而没有InstallShield,那么您可以通过从命令行运行msi并提供正确的参数来打开msi日志记录,以进一步了解消息,但我不知道在InstallShield可执行文件中执行该文件时如何做到这一点


我如何才能做到这一点?

在对InstallShield安装程序进行故障排除时,我遇到了类似的问题。我通常会强制操作系统记录安装:

  • 导航到注册表:
    [HKEY\U LOCAL\U MACHINE\SOFTWARE\Policys\Microsoft\Windows\Installer]
  • 创建一个新的注册表项,如下所示:
    Logging=voicewarmup
    ,其中Logging是注册表项,voicewarmup是值
  • 无论何时运行安装程序,它都会登录到用户的临时目录。日志文件将命名为MSI(MSI),其中“MSI”是一个字母数字字符字符串。您可以按修改日期排序,以查看创建的最新日志
  • 注意:这将记录所有安装,有些安装可能有多个日志文件。一般来说,我建议如果您将此注册表项设置为获取安装日志,则在获取日志文件后删除注册表项


    这里还介绍了上面介绍的方法:

    您可以使用/v将命令行参数从Installshield.EXE传递到包含的MSI,然后双引号引用传递的内容。
    /lv输出详细日志

    因此,要从installshield可执行文件生成详细日志,请运行

    Setup.exe /V"/lv C:\temp\SetupLog.log"
    

    临时目录是否引用了
    %temp%
    ?该目录中未显示任何内容。我按日期和所有内容排序。@leeand00,我偶尔做的另一件事是启动InstallShield exe,将单个MSI从临时目录中取出。然后通过命令行启动msi,如下所示:
    msiexec/i product.msi/lvoicewarmupx log.txt ISSETUPDRIVEN=1
    。属性ISSETUPDRIVEN由installshield使用,以便msi知道它来自installshield.exe。否则,安装将失败。我不建议这样安装,但我尝试记录wtf正在进行的一些installsheild安装,但我似乎无法记录。我去了注册表,它没有安装程序密钥,除非我使用当前版本。我正在使用Windows Server 2003。我添加了一个链接,指向一篇描述该注册表项的文章。当我浏览到它时,它说这篇文章适用于与我运行的操作系统不同的操作系统(我使用的是Win7)。现在它仍然适用于我,但基于这一措辞,我想知道它是否不一定适用于所有Windows操作系统。应该在Win7和XP上工作,但不确定Windows Server 2003。