Использование имени установщика NSIS в различных строках описания - PullRequest
1 голос
/ 14 мая 2019

Итак, мой скрипт NSIS имеет Name установщика в качестве первой строки:

Name "Magic App"

Теперь для нескольких страниц (страница COMPONENTS, страница DIRECTORY и т. Д.) Я переопределилстандартный текст, как показано ниже:

!define MUI_PAGE_HEADER_TEXT "Components to install"
!define MUI_PAGE_HEADER_SUBTEXT "The following features of Magic App will be installed."
!define MUI_COMPONENTSPAGE_TEXT_TOP "Click next to continue."
!define MUI_COMPONENTSPAGE_TEXT_COMPLIST "Components to install:"
!insertmacro MUI_PAGE_COMPONENTS

!define MUI_PAGE_HEADER_TEXT "Choose the folder where Magic App will be installed"
!define MUI_PAGE_HEADER_SUBTEXT "Magic App files will be installed."
!define MUI_DIRECTORYPAGE_TEXT_TOP "Setup will install Magic App in the chosen folder. To install Magic App, click Browse and select a folder. Click Next to continue."
!insertmacro MUI_PAGE_DIRECTORY

Как ясно из вышеприведенного, имя Magic App повторяется / используется много раз во всех строках описания.Поэтому, если я в будущем поменяю имя приложения, мне нужно будет сделать это изменение во всех этих местах.

Как я могу использовать Name установщика в этих строках описания?

Я пытался использовать ${Name}:

!define MUI_PAGE_HEADER_SUBTEXT "The following features of ${Name} will be installed."

Но это привело к следующему предупреждению:

warning 6000: unknown variable/constant "{Name}" detected, ignoring (macro:MUI_PAGE_HEADER_SUBTEXT:10)

1 Ответ

1 голос
/ 14 мая 2019

${Name} - это синтаксис для доступа к определению. Конечно, вы можете создать определение с этим именем, но также можно напрямую получить доступ к имени атрибут , используя синтаксис langstring:

!define MUI_PAGE_HEADER_SUBTEXT "$(^Name) files will be installed."
...