2017-01-20 67 views
1

我正在使用旧的NSIS脚本为更新的软件版本创建一个新的安装程序。我编译旧的脚本是,它会弹出2个警告:NSIS安装程序。为什么我会收到警告“!verbose:pop failed”?

!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

NSIS版本? MUI v1或v2? – Anders

回答

0

这看起来像是NSIS中的一个错误,第一个弹出窗口应该是推送。

!verbose push 
!verbose push 
!insertmacro MUI_UNGETLANGUAGE 

或用替换第一个弹出修复.nsh文件:

您可以通过手动推第一隐藏的bug修复

!verbose push 
!verbose ${MUI_VERBOSE} 

警告是不是一个大处理,它可能会以意想不到的方式影响编译器文本输出,但它对生成的安装程序没有影响。

+0

非常感谢您的回答! –

相关问题