electron - 将自定义页面/字段添加到使用 electron-builder 创建的 NSIS 设置

标签 electron nsis electron-builder

我创建了一个 Electron 应用程序,它被打包到带有 electron-builder 的 NSIS 安装程序中。

现在我想向安装程序添加一个自定义文本字段,用户可以在其中输入一个值(该值应保存到磁盘/注册表,稍后需要在应用程序中可用)。

我看到安装程序中定义了一个 customWelcomePage 宏,它可能被(误)用于此目的?但是我如何创建一个创建完整页面的宏呢? NSIS 对我来说是全新的,NSIS 页面上的示例似乎是针对独立安装程序的,而不是针对现有安装程序的。或者还有其他更好的方法吗?

最佳答案

我最近一直在做同样的事情。这是我所做的:

首先,使用 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 的代码的 question当我创建自定义页面时。这将使一个页面出现在实际安装之前(Mevia 的问题),因此您应该小心保存输入数据的位置。

我相信使用 include 而不是 script 可以让您为单个页面编写代码,而不必自己编写整个安装程序脚本。

关于electron - 将自定义页面/字段添加到使用 electron-builder 创建的 NSIS 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51185663/

相关文章:

javascript - 如何修复: “Uncaught SyntaxError: Unexpected token …” on Waze Iframe API using ElectronJS

windows-installer - NSIS反编译器

nsis - 以其他用户身份运行时在 NSIS 安装程序中登录用户名 [admin]

NSIS - 静默自动更新应用程序

python - 我可以在没有 node.js 的情况下使用 Electron

ubuntu - Electron Builder-Ubuntu 中的 DMG

angular - 打包Angular 2 Electron App时,路线不再起作用

javascript - 将 asar 包中的打包 JS 文件传递​​给生成的 Node 子进程

javascript - 如何让Electron与sqlite3一起工作?

electron - 从electronjs项目创建debian文件时显示错误