2017-01-20 14 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

Большое спасибо за ответ! –