Windows 带Electron的链式msi安装程序

Windows 带Electron的链式msi安装程序,windows,windows-installer,installation,electron,Windows,Windows Installer,Installation,Electron,我是Electron的新手,我正在构建一个我想安装在Windows上的应用程序。 我阅读了有关如何在Electron's中分发应用程序的文档,我知道: electron-forge electron-builder electron-packager 目前我的工作对象是: "electron-builder-squirrel-windows": "^19.20.0", "electron-builder": "^19.20.0", "electron": "^1.6.11" 鉴于此,我能够创

我是Electron的新手,我正在构建一个我想安装在Windows上的应用程序。 我阅读了有关如何在Electron's中分发应用程序的文档,我知道:

electron-forge
electron-builder
electron-packager
目前我的工作对象是:

"electron-builder-squirrel-windows": "^19.20.0",
"electron-builder": "^19.20.0",
"electron": "^1.6.11"
鉴于此,我能够创建一个Setup.exe来安装我的应用程序,但我 无法为安装过程创建任何UI

我想让用户选择更改安装路径,如果他需要,显示我希望他接受的最终许可证

网站上没有提供这方面的信息

看看用Electron构建的编辑器,我可以看到在安装过程中可以显示一些UI。这通常是怎么做的

编辑: 我刚刚了解到,您需要使用squirrel事件来实现此目的 编辑:

  • 将标题更改为“带Electron的链接msi安装程序”
请注意,安装程序第一次启动您的应用程序时,您的应用程序将看到一个--squirrelfirstrun标志。这允许您执行诸如显示启动屏幕或显示设置UI之类的操作


使用Squirrel时,无法在Windows上选择安装路径。它在未来似乎也不存在。他们不想支持这一点。
并且,

< P>作为使用整个电子封装堆栈来开发Windows MSI安装交付的替代方案,您可以考虑使用以下机制作为另一个有用的解决方案:

  • 网页包-构建可分发的应用程序客户端
  • electron packager-构建电子二进制文件(在本例中) (适用于Windows)
  • WiX工具集-用于构建Windows MSI安装程序
  • 当然,无论您选择使用哪种安装程序,都必须执行步骤1和2。我发现
    webpack
    是打包angular web应用程序(我就是这么做的)最稳定、最可配置和最完整的解决方案,
    electron packager
    是一个工具,如果你真的想为你的应用程序构建特定于平台的二进制文件,你就不能随便使用它

    在我们的例子中,我使用
    gulp
    脚本包装
    webpack
    electron-packager
    模块,我通过它们的API而不是它们的命令行衍生物调用它们,以便在一致的javascript上下文中维护它们,以便于在构建过程中进行维护和错误处理(命令行解决方案比javascript、imo中的包、模块、文件和函数更难确定范围和用途)

    通过理解我所指的项目类型,可以更容易地解释这一点。具体来说,如果您正在构建一个具有完整项目结构的电子应用程序,例如:

    C:.
    +---assets/
    +---ClientSide
    ¦   +---index.html
    ¦   +---app
    ¦   ¦   +---app.component.ts
    ¦   ¦   +---app.module.ts
    ¦   ¦   +---main.ts
    ¦   ¦   +---AppContent/
    ¦   ¦   +---help/
    ¦   ¦   +---modals/
    ¦   ¦   +---panels/
    ¦   ¦   +---shared/
    ¦   +---Styles
    ¦   ¦   +---dist/
    ¦   ¦   +---svgs/
    ¦   +---test
    ¦       +---AppContent/
    ¦       +---modals/
    ¦       +---panels/
    ¦       +---shared/
    +---dist/
    +---edist
    |   \---Application-win32-ia32 [*location of binary source for the install]
    +---ServerSide
    ¦   +---app.js
    ¦   +---server.js
    ¦   +---test/
    +---Installer
        +---buildMSI.bat
        +---Application/
    
    gulpfile.js
    karma.conf.js
    main.js
    package.json
    README.md
    webpack.config.js
    
    这种结构显示了一个项目,该项目具有您在实际开发环境中所需的所有部分,例如webpack、配置、karma(客户端测试)、打包操作(webpack的包装操作、electron packager)、运行WiX命令的windows批处理文件等等

    这种方法的流程(可能记录在您的README.md中)类似于新用户设置和构建项目的以下步骤:

  • git clone
    ——将repo克隆到本地计算机
  • npm安装
    ——加载/安装节点模块
  • 吞下皮棉
    ——验证代码并生成CI结果。(您选择的皮棉)
  • gulptest
    ——运行服务器端和客户端单元测试,为每个单元生成代码覆盖率CI结果
  • gulp build\u web\u client
    ——使用
    webpack
    API调用构建客户端web项目。这将生成在项目下创建的名为“dist”的目录
  • gulp build\u electron\u app
    ——使用
    electron packager
    API构建electron可执行文件。这将生成在项目下创建的名为“edist”的目录
  • cd安装程序
  • buildMSI.bat
    ——此Windows批处理脚本应执行以下步骤:
  • 使用Wix命令
    heat.exe
  • 使用Wix命令
    candle.exe
  • 使用Wix命令
    Light.exe
    将Wix项目链接到其最终可安装的文件格式中,生成安装MSI文件
  • 这只是一个建议。当然,您可以根据自己的选择,在每个步骤中使用其他工具。这只是我发现的一种方法,适用于开发部署到Windows目标的electron应用程序。这方面的好处是,使用electron,您可以选择使用步骤1构建多个目标操作系统-6,然后如果您想使用Windows或Mac、Linux执行步骤7和步骤8,请使用不同的部署方法

    是的,这是真的,你可以使用
    electron builder
    (或
    electron forge
    为那些有简单需求的人)通过Squirrel打包你的应用程序,作为部署到electron可用的所有操作系统的一种方式(这意味着用这些打包替代品替换我的步骤7和8).根据我的经验,就我们的环境而言,Windows部署的Squirrel解决方案似乎不如使用Wix进行部署


    对于您最初提出的关于安装可配置性的问题,使用Wix的好处在于,您可以完全自定义安装UI和体验(包括目标路径).

    你认为我可以用electron compile代替webpack吗?我的项目是用
    electron forge init创建的。
    回答得好。+1