2017-01-20 1 views
1

Ich erstelle ein neues Installationsprogramm für eine aktualisierte Softwareversion mit dem NSIS-Skript aus dem alten. Ich bin der Zusammenstellung der alten Skript wie und es knallt 2 Warnungen:NSIS-Installationsprogramm. Warum bekomme ich die Warnung "! Verbose: pop failed"?

!verbose: Pop failed, stack is empty (macro:MUI_UNGETLANGUAGE:2) 
!verbose: Pop failed, stack is empty (macro:MUI_UNGETLANGUAGE:24) 

Das Skript, in dem diese Warnungen mich auffordern, ist dies (die Zeilen, in denen ich die Warnungen erhalten, sind die !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 

Sind diese Warnungen eine Warnung wert? Und wenn ja, was soll ich tun? Vielen Dank im Voraus.

+0

NSIS Version? MUI v1 oder v2? – Anders

Antwort

0

Das sieht aus wie ein Bug in NSIS, der erste Pop sollte ein Push sein.

Sie können das Problem beheben, indem Sie manuell schieben zuerst den Fehler zu verstecken:

!verbose push 
!verbose push 
!insertmacro MUI_UNGETLANGUAGE 

oder die .nsh Datei beheben, indem Sie den ersten Pop ersetzen mit:

!verbose push 
!verbose ${MUI_VERBOSE} 

Die Warnung ist keine große Es kann die Compiler-Textausgabe auf unerwartete Weise beeinflussen, hat jedoch keine Auswirkungen auf das generierte Installationsprogramm.

+0

Vielen Dank für die Antwort! –

Verwandte Themen