NSIS warning 7998: ANSI targets are deprecated, как исправить.
Обновил 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.Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2020/11/07/nsis-w