电子链msi安装程序

问题描述:

我是Electron的新手,我正在构建一个我想在Windows上安装的应用程序。 我读了如何在电子的docs分发您的应用程序的文档,我知道:电子链msi安装程序

electron-forge 
electron-builder 
electron-packager 

目前我的工作:

"electron-builder-squirrel-windows": "^19.20.0", 
"electron-builder": "^19.20.0", 
"electron": "^1.6.11" 

鉴于此,我能创造一个Setup.exe来安装我的应用程序,但我是 无法为安装过程创建任何用户界面。

我想给的选项给用户,如果他需要改变安装路径,显示最终许可证我要他接受,...

没有这方面的信息在electron.atom.io

给出

看看Atom编辑器或Slack,这是用Electron构建的,我可以看到在安装过程中可以显示一些UI。这通常如何完成?

编辑: 我刚刚看了一下windows-installer,你需要使用松鼠事件这个 编辑编辑:

  • 更改标题为“链式MSI安装程序与电子”

公告当安装程序第一次启动您的应用程序时,您的应用程序将看到--squirrel-firstrun标志。这使您可以执行诸如显示启动画面或呈现设置UI等内容。

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

  1. 的WebPack - 来构建应用程序的客户端分配
  2. 电子打包 - 打造您的电子二进制文件(在这种情况下 适用于Windows)
  3. 的WiX工具集 - 构建Windows MSI安装程序。

当然,无论您选择使用哪种安装程序,您都必须执行第1步和第2步。我发现webpack是用于打包角度网络应用程序(这是我工作的)最稳定,可配置和完整的解决方案,而electron-packager是您无法使用的一种工具,如果您想实际构建平台特定的二进制文件为您的应用

在我们的例子中,我使用gulp脚本来包装webpackelectron-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,电子包装器),用于运行WiX命令的Windows批处理文件,等等。

这种做法的流动将(可能记录在您的README.md)像这些步骤为新用户设置和建设项目:

  1. git clone <project/path> - 克隆回购到本地机器
  2. npm install - 加载/安装node_modules
  3. gulp lint - 验证代码并生成CI结果。 (您棉短绒的选择)
  4. gulp test - 运行服务器端和客户端单元测试,为每个
  5. gulp build_web_client代码覆盖率CI成果 - 建立使用webpack API调用客户端的Web项目。这应该会产生一个名为“dist”的目录,该目录在项目
  6. gulp build_electron_app下创建 - 使用electron-packager API构建Electron可执行文件。这应该产生一个在项目下创建的名为“edist”的目录。
  7. cd Installer
  8. buildMSI.bat - 此Windows批处理脚本应该做以下步骤:
    1. 准备通过收获/ edist目录的内容列表清单文件(导致.wxs文件)(见于目录树结构上方,并通过步骤6中创建的),通过使用维克斯命令heat.exe
    2. 预处理和工程编译成和对象(.wixobj)使用维克斯命令candle.exe
    3. 链路的维克斯项目成其最终可安装文件形式使用Wix命令Light.exe,生成安装MSI文件。

这只是一个建议。当然,您可以根据自己的选择,为每个步骤使用其他工具。这只是我发现的一种方法,适用于部署到Windows目标的电子应用程序的开发。关于这一点的好处是,使用Electron,您可以选择使用步骤1-6来构建到许多目标操作系统,如果您想要转到Windows或Mac,Linux执行步骤7和步骤8,则可以采用不同的部署方法。

是的,这是事实,你可以使用(对于那些简单的需求或electron-forgeelectron-builder通过松鼠打包你的应用程序,以此来部署,以提供给电子(这将意味着更换我的步骤7和8的所有操作系统与那些包装替代品)。从我的经验,并为我们的背景下,松鼠解决Windows部署似乎比使用维克斯部署不太理想。

您关于可配置到安装原来的问题,关于使用维克斯的好处是,你得到它完全自定义安装的用户界面和体验(包括目标寻路)的能力。

+0

你觉得我可以用电子编译取代的WebPack?我的项目是用'electron-forge init'创建的 – Carlinho89

当您使用松鼠时,无法在Windows上选择安装路径。它似乎也不会在未来。他们不想支持这一点。 See herehere