NSIS 安装程序。为什么我收到警告“!详细:弹出失败”?
NSIS installer. Why do I get the warning "!verbose: pop failed"?
我正在使用旧版本的 NSIS 脚本为更新的软件版本创建一个新的安装程序。我按原样编译旧脚本,它弹出 2 个警告:
!verbose: Pop failed, stack is empty (macro:MUI_UNGETLANGUAGE:2)
!verbose: Pop failed, stack is empty (macro:MUI_UNGETLANGUAGE:24)
这些警告提示我的脚本是这样的(我收到警告的行是!verbose pop
):
!macro MUI_UNGETLANGUAGE
!verbose pop
!ifdef MUI_LANGDLL_REGISTRY_ROOT & MUI_LANGDLL_REGISTRY_KEY & MUI_LANGDLL_REGISTRY_VALUENAME
ReadRegStr $MUI_TEMP1 "${MUI_LANGDLL_REGISTRY_ROOT}" "${MUI_LANGDLL_REGISTRY_KEY}" "${MUI_LANGDLL_REGISTRY_VALUENAME}"
StrCmp $MUI_TEMP1 "" 0 mui.ungetlanguage_setlang
!endif
!insertmacro MUI_LANGDLL_DISPLAY
!ifdef MUI_LANGDLL_REGISTRY_ROOT & MUI_LANGDLL_REGISTRY_KEY & MUI_LANGDLL_REGISTRY_VALUENAME
Goto mui.ungetlanguage_done
mui.ungetlanguage_setlang:
StrCpy $LANGUAGE $MUI_TEMP1
mui.ungetlanguage_done:
!endif
!verbose pop
!macroend
这些警告值得担心吗?如果是,我该怎么办?提前谢谢你。
这看起来像是 NSIS 中的错误,第一个 pop 应该是推送。
您可以通过先手动推送隐藏错误来修复它:
!verbose push
!verbose push
!insertmacro MUI_UNGETLANGUAGE
或通过将第一个 pop 替换为以下内容来修复 .nsh 文件:
!verbose push
!verbose ${MUI_VERBOSE}
警告没什么大不了的,它可能会以意想不到的方式影响编译器文本输出,但对生成的安装程序没有影响。
我正在使用旧版本的 NSIS 脚本为更新的软件版本创建一个新的安装程序。我按原样编译旧脚本,它弹出 2 个警告:
!verbose: Pop failed, stack is empty (macro:MUI_UNGETLANGUAGE:2)
!verbose: Pop failed, stack is empty (macro:MUI_UNGETLANGUAGE:24)
这些警告提示我的脚本是这样的(我收到警告的行是!verbose pop
):
!macro MUI_UNGETLANGUAGE
!verbose pop
!ifdef MUI_LANGDLL_REGISTRY_ROOT & MUI_LANGDLL_REGISTRY_KEY & MUI_LANGDLL_REGISTRY_VALUENAME
ReadRegStr $MUI_TEMP1 "${MUI_LANGDLL_REGISTRY_ROOT}" "${MUI_LANGDLL_REGISTRY_KEY}" "${MUI_LANGDLL_REGISTRY_VALUENAME}"
StrCmp $MUI_TEMP1 "" 0 mui.ungetlanguage_setlang
!endif
!insertmacro MUI_LANGDLL_DISPLAY
!ifdef MUI_LANGDLL_REGISTRY_ROOT & MUI_LANGDLL_REGISTRY_KEY & MUI_LANGDLL_REGISTRY_VALUENAME
Goto mui.ungetlanguage_done
mui.ungetlanguage_setlang:
StrCpy $LANGUAGE $MUI_TEMP1
mui.ungetlanguage_done:
!endif
!verbose pop
!macroend
这些警告值得担心吗?如果是,我该怎么办?提前谢谢你。
这看起来像是 NSIS 中的错误,第一个 pop 应该是推送。
您可以通过先手动推送隐藏错误来修复它:
!verbose push
!verbose push
!insertmacro MUI_UNGETLANGUAGE
或通过将第一个 pop 替换为以下内容来修复 .nsh 文件:
!verbose push
!verbose ${MUI_VERBOSE}
警告没什么大不了的,它可能会以意想不到的方式影响编译器文本输出,但对生成的安装程序没有影响。