生成安装日志

时间:2021-03-29 06:52:15

标签: nsis

我正在使用特殊的日志构建来生成安装日志。 我观察到从安装程序脚本调用另一个安装程序时没有生成日志。 对于前 - ExecWait '"$INSTDIR\installer1.exe" /S _?=$INSTDIR'

日志是为主安装程序生成的,但不是为 installer1.exe 生成的

installer1.exe 包含很多组件,我需要打印相同的日志。我曾尝试在 installer1 脚本中启用 logset,但没有成功。 尝试使用转储日志,但它不适用于静默安装。

任何帮助将不胜感激!

来自主安装程序脚本的示例代码 -- 安装目录 "C:\MyFolder" 名称“${PRODUCT_NAME_VERSION}” 输出文件“${OUT_FILE}”

“测试”部分 SetOutPath $INSTDIR 登录 ExecWait '"$EXEDIR\Packages\installer1.exe" /S /INST=$INSTDIR' $0 部分结束

来自子安装程序脚本的示例代码 --- 安装目录 "C:\MyFolder" “-演示”部分 SetOutPath $INSTDIR 登录 LogText“打印一些东西” SetOutPath $INSTDIR\ExternalFolder\Demo 文件 /nonfatal /a /r $INSTDIR\ExternalFolder\Demo\Test ExecWait '"$INSTDIR\ExternalFolder\Demo\Test\TestSetup.exe" /silent ' 部分结束

子安装程序(installer1.exe)是预编译好的,保存在$EXEDIR\Packages\installer1.exe中的exe补丁是有效的。

1 个答案:

答案 0 :(得分:0)

_?= 是只有 NSIS 卸载程序支持的特殊语法,安装程序使用 /D=。

ExecWait '"$InstDir\installer.exe" /S /D=$InstDir'

当然也必须在这个子安装程序中启用日志记录。

/D= 覆盖 InstallDir 属性,在执行 .onInit 之前强制 $InstDir 到指定的路径。

InstallDir $INSTDIR 没有意义,使用类似 InstallDir "$ProgramFiles\MyApp"