Обновил NSIS с v 3.04 до 3.06.1, в логе компилятора стал вылезать warning:
Processed 1 file, writing output (x86-ansi): warning 7998: ANSI targets are deprecated ... warning: 7998: ANSI targets are deprecated
Т.е. ANSI ему устарело. Warning не error, но все равно неприятно. Впрочем, исправить не составило особого труда.
Для исправления этого дела, в начало скрипта надо добавить команду:
Unicode true
Только команду надо добавлять в самое начало скрипта, во всяком случае до секций и до определения параметра InstallDir
. Если добавить после InstallDir
:
;...
Name "${APPNAMEANDVERSION}"
InstallDir "$TEMP"
Unicode true
OutFile "TempUnicode.exe"
;...
То это вызовет ошибку:
Error: Can't change target charset after data already got compressed or header already changed!
Невозможно изменить целевую кодировку после того, как данные уже сжаты или заголовок изменен!
А лучше добавлять Unicode true
вообще в самое начало скрипта, первой строчкой, даже до !include
, как пишут на форуме NSIS, т.к. от чего компилятор так реагирует на смену кодировки, в документации не описано.
Примечание: с русским языком в инсталляторе проблем при смене кодировки не случилось, хотя редактор передает компилятору скрипт на STDIN
, а редактор сохраняет файл скрипта в ANSI (кодировка Win 1251). Во всяком случае, проблем не случилось при использовании Venis IX.