我正在使用旧版本的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
这些警告值得担心吗?如果是的话,我该怎么办?提前谢谢。
答案 0 :(得分:0)
这看起来像NSIS中的一个错误,第一个pop应该是推动。
您可以先手动按下以隐藏错误来修复它:
!verbose push
!verbose push
!insertmacro MUI_UNGETLANGUAGE
或通过将第一个pop替换为:
来修复.nsh文件!verbose push
!verbose ${MUI_VERBOSE}
警告不是什么大问题,它可能以意想不到的方式影响编译器文本输出,但它对生成的安装程序没有影响。