Добавить пользовательскую страницу / поле в настройку NSIS, созданную с помощью электронного компоновщика - PullRequest
0 голосов
/ 05 июля 2018

Я создал приложение Electron, которое упаковано в установщик NSIS с электронным компоновщиком.

Теперь я хотел бы добавить настраиваемое текстовое поле в установщик, где пользователь может ввести значение (значение должно быть сохранено на диске / в реестре, позже оно должно быть доступно в приложении).

Я видел, что в установщике определен макрос customWelcomePage, который, вероятно, (неправильно) использовали для этой цели? Но как мне создать макрос, который создает полную страницу? NSIS совершенно новый для меня, и примеры на странице NSIS, похоже, предназначены для автономных установщиков, а не для подключения к существующему установщику. Или есть другой, лучший подход?

1 Ответ

0 голосов
/ 17 апреля 2019

Я недавно работал над тем же. Вот что я сделал:

Во-первых, используйте параметр include , чтобы указать на файл .nsh (я делаю это в package.json):

{
  "build": {
    "appId": "...",
    "nsis": {
      "include": "build/installer.nsh"
    }
  }
}

Затем вы можете поместить свой собственный код NSIS в этот файл .nsh:

!include nsDialogs.nsh

XPStyle on

Var Dialog

Page custom myCustomPage

Function myCustomPage

    nsDialogs::Create 1018
    Pop $Dialog

    ${If} $Dialog == error
        Abort
    ${EndIf}

    ...

    nsDialogs::Show

FunctionEnd

Section
SectionEnd

Я адаптировал код из Mevia вопрос , когда я создавал свою пользовательскую страницу. Это создаст страницу, которая появится перед фактической установкой (проблема Mevia), поэтому вы должны быть осторожны, когда сохраняете входные данные.

Я считаю, что использование include вместо script - это то, что позволяет вам писать код для одной страницы, вместо того, чтобы писать весь скрипт установщика самостоятельно.

...