2017-01-20 2 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ファイルを修正します:

手動でバグを隠すために最初押すことでそれを修正することができ

!verbose push 
!verbose ${MUI_VERBOSE} 

警告は大きくはありません予期しない方法でコンパイラのテキスト出力に影響を与える可能性がありますが、生成されたインストーラには影響しません。

+0

ありがとうございました! –

関連する問題