2017-01-20 15 views
1

이전 버전의 NSIS 스크립트를 사용하여 업데이트 된 소프트웨어 버전을위한 새로운 설치 프로그램을 만들고 있습니다.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 
이며 2 경고를 팝업으로 나는 기존의 스크립트를 컴파일하고

이러한 경고는 걱정할 가치가 있습니까? 그리고 그렇다면, 어떻게해야합니까? 미리 감사드립니다.

+0

NSIS 버전? MUI v1 또는 v2? – Anders

답변

0

이것은 NSIS의 버그처럼 보입니다. 첫 번째 팝업은 푸시 여야합니다.

!verbose push 
!verbose push 
!insertmacro MUI_UNGETLANGUAGE 

또는으로 첫 번째 팝업을 대체하여 .nsh 파일을 수정 :

수동으로 버그를 숨기려면 먼저 밀어 고칠 수

!verbose push 
!verbose ${MUI_VERBOSE} 

경고는 크지 않다 처리 할 때 예상치 못한 방식으로 컴파일러 텍스트 출력에 영향을 줄 수 있지만 생성 된 설치 프로그램에는 영향을 미치지 않습니다.

+0

답변 해 주셔서 감사합니다. –