【问题标题】:Generate installation logs生成安装日志
【发布时间】:2021-06-25 05:19:43
【问题描述】:

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

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

installer1.exe 包含很多组件,我需要打印它们的日志。我尝试在 installer1 脚本中启用 logset,但没有运气。 尝试使用 dumplog,但它不适用于静默安装。

任何帮助将不胜感激!

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

“测试”部分 设置输出路径 $INSTDIR 日志集开启 ExecWait '"$EXEDIR\Packages\installer1.exe" /S /INST=$INSTDIR' $0 部分结束

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

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

【问题讨论】:

    标签: nsis


    【解决方案1】:

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

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

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

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

    InstallDir $INSTDIR 没有意义,使用 InstallDir "$ProgramFiles\MyApp" 之类的东西

    【讨论】:

    • 谢谢安德斯!我在问题中发布了错误的命令。对不起。我使用的命令是 ExecWait '"$EXEDIR\Packages\installer1.exe /S /INST=$INSTDIR' 另外,在子安装程序中启用了日志记录。在上述命令中将 /INST 更改为 /D 后,我得到了安装路径输入的错误是空的,它正在中止子安装程序安装。你能告诉我我哪里出错了吗?
    • 抱歉发布答案而不是编辑帖子。我已经编辑了帖子以包含示例代码。 Installer1.exe 被预编译并保存在指定位置 - $EXEDIR\Packages\installer1.exe 并且在更改命令时: ExecWait '"$InstDir\installer.exe" /S /D=$InstDir' 抛出错误说输入的安装目录路径为空,正在中止子安装程序的安装。
    • 我将 InstallDir 编辑为“C:\MyFolder”。但存在与上述 cmets 相同的错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-01
    • 1970-01-01
    相关资源
    最近更新 更多