Installation 如何在installshield向导完成屏幕上显示安装程序日志文件?

Installation 如何在installshield向导完成屏幕上显示安装程序日志文件?,installation,installshield,windows-installer,installshield-2016,Installation,Installshield,Windows Installer,Installshield 2016,我正在使用以下命令从命令提示符启动安装程序: msiexec /i "myproduct.msi" /l*v install.log 由于我使用的是/l*v选项,因此安装程序会在完成屏幕上自动向我显示一个复选框,其标签为“显示Windows安装程序日志” 现在我选中复选框,然后单击finish按钮,但它不会打开安装过程中创建的install.log文件。我可以在启动安装的目录的根目录中看到install.log文件。为什么日志文件没有打开?我终于能够确定它。实际上,从一开始我就有这样一种印象

我正在使用以下命令从命令提示符启动安装程序:

msiexec /i "myproduct.msi" /l*v install.log
由于我使用的是
/l*v
选项,因此安装程序会在完成屏幕上自动向我显示一个复选框,其标签为“显示Windows安装程序日志”


现在我选中复选框,然后单击finish按钮,但它不会打开安装过程中创建的
install.log
文件。我可以在启动安装的目录的根目录中看到
install.log
文件。为什么日志文件没有打开?

我终于能够确定它。实际上,从一开始我就有这样一种印象,即安装程序日志文件的显示将自行进行。我之所以有这样的印象,是因为当您将
/l*v install.log
参数添加到
msiexec
命令中时,您开始看到“Show the Windows Installer log”复选框本身,而没有进行任何显式编码

复选框的visible属性由名为
ISSHOWMSILOG
的预先存在的公共属性控制,它已经烘焙到基本MSI安装程序项目模板中。现在,如果我们希望在选中复选框时真正显示日志文件,则必须调用显式自定义操作,以便在单击“完成”按钮时显示该文件:

事件类型:
DoAction

事件调用条件:
MsiLogFileLocation和(ISSHOWMSILOG=“1”)而不是ISENABLEDWUSFINISHDIALOG

事件操作:
ShowMsiLog


在我对我的基本MSI项目进行了这一更改之后,单击“完成”按钮时,只有日志文件开始显示。

我终于能够确定它。实际上,从一开始我就有这样一种印象,即安装程序日志文件的显示将自行进行。我之所以有这样的印象,是因为当您将
/l*v install.log
参数添加到
msiexec
命令中时,您开始看到“Show the Windows Installer log”复选框本身,而没有进行任何显式编码

复选框的visible属性由名为
ISSHOWMSILOG
的预先存在的公共属性控制,它已经烘焙到基本MSI安装程序项目模板中。现在,如果我们希望在选中复选框时真正显示日志文件,则必须调用显式自定义操作,以便在单击“完成”按钮时显示该文件:

事件类型:
DoAction

事件调用条件:
MsiLogFileLocation和(ISSHOWMSILOG=“1”)而不是ISENABLEDWUSFINISHDIALOG

事件操作:
ShowMsiLog


在我对我的基本MSI项目进行此更改后,单击
Finish
按钮时,只有日志文件开始显示。

根据日志,它做了什么?我不明白你的问题。你是说当我点击
Finish
按钮时,我应该观察日志中的一些日志语句吗。是吗?如果查看已创建(但未显示)的日志文件,则应该有一个试图显示日志的自定义操作。大概是失败了。日志可能会显示它尝试执行的操作或失败的操作。否。我在日志文件中没有看到任何错误。自定义操作?我是否必须编写自定义操作才能打开该日志文件?当我将
l*v
参数与msiexec一起使用时,该复选框将自动可见。我希望InstallShield能够通过一些现成的功能自己打开日志文件。它通常会这样做(是的,它使用自定义操作),到目前为止,没有任何共享可以解释问题所在。根据日志,它会做什么?我不明白你的问题。你是说当我点击
Finish
按钮时,我应该观察日志中的一些日志语句吗。是吗?如果查看已创建(但未显示)的日志文件,则应该有一个试图显示日志的自定义操作。大概是失败了。日志可能会显示它尝试执行的操作或失败的操作。否。我在日志文件中没有看到任何错误。自定义操作?我是否必须编写自定义操作才能打开该日志文件?当我将
l*v
参数与msiexec一起使用时,该复选框将自动可见。我希望InstallShield能够通过一些开箱即用的功能自行打开日志文件。它通常会这样做(是的,它使用自定义操作),到目前为止,没有任何共享内容可以解释问题所在。我相当确定该操作应该已经存在。除非项目最初是在旧版本的InstallShield中创建并迁移的。(这应该很容易通过一次性测试项目确认。)Ohh。你是对的。我检查了一下,在一个新的IS 2016项目中,从零开始就有相同的代码。现在我记得我把这个项目从IS 2014升级到IS 2016。但问题是,在is 2014的一个新空白项目中也出现了相同的代码行。那个么,为什么那个代码在迁移过程中丢失了呢?我猜它来自更旧的版本。迁移会忽略大多数对话框,因为您可以自定义它们,我们不想破坏它们。我做了一个快速测试来验证相同的情况。我在IS 2014年创建了一个基本MSI项目,然后将其转换为IS 2016。在这种情况下,只要点击
Finish
按钮,就可以编写任何自定义操作代码(显示日志文件),它就会保持原样。我相当确定该操作应该已经存在。除非项目最初是在旧版本的InstallShield中创建并迁移的。(这应该很容易通过一次性测试项目确认。)Ohh。你是对的。我检查了一下,在一个新的IS 2016项目中,从零开始就有相同的代码。现在我记得我把这个项目从IS 2014升级到IS 2016。但问题是,在is 2014的一个新空白项目中也出现了相同的代码行。那么,为什么在迁移过程中这些代码丢失了呢?我的