[英]Chained msi Installer with Electron
我是Electron的新手,我正在构建一个我想在Windows上安装的应用程序。 我阅读了有关如何在Electron的文档中分发您的应用程序的文档 ,我知道:
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构建的Atom编辑器或Slack ,我可以看到在安装过程中可以显示一些UI。 这通常是怎么做的?
编辑:我刚刚阅读了关于windows-installer的信息 ,您需要为此Edit Edit使用squirrel事件:
请注意,安装程序第一次启动您的应用时,您的应用会看到--squirrel-firstrun标志。 这允许您执行诸如显示启动画面或显示设置UI之类的操作。
作为使用整个电子包堆栈开发Windows MSI安装交付的替代方法,您可以考虑使用以下机制作为另一种有用的解决方案:
当然,无论您选择使用哪种安装程序,都必须执行步骤1和步骤2。 我发现webpack
是最稳定,可配置和完整的解决方案,用于打包角度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,配置,业力(客户端测试),用于打包操作的gulp(webpack的包装操作,电子打包器),窗口用于运行WiX命令的批处理文件等。
这种方法的流程(可能记录在您的README.md中)类似于新用户设置和构建项目的这些步骤:
git clone <project/path>
- 将repo克隆到本地计算机 npm install
- 加载/安装node_modules gulp lint
- 验证代码并生成CI结果。 (你选择的短绒) gulp test
- 运行服务器端和客户端单元测试,为每个测试生成代码覆盖CI结果 gulp build_web_client
- 使用webpack
API调用构建客户端Web项目。 这应该会在项目下创建一个名为“dist”的目录 gulp build_electron_app
- 使用electron-packager
API构建Electron可执行文件。 这应该会在项目下创建一个名为“edist”的目录。 cd Installer
buildMSI.bat
- 此Windows批处理脚本应执行以下步骤:
heat.exe
/ edist目录的内容列表(在上面的目录树结构中看到并由步骤6创建)来准备清单文件(生成.wxs文件) candle.exe
预处理并将项目编译为对象(.wixobj) Light.exe
将Wix项目链接到其最终可安装文件格式,生成安装MSI文件。 这只是一个建议。 当然,您可以根据自己的选择使用其他工具。 这只是我发现的一种方法,可用于开发用于部署到Windows目标的电子应用程序。 关于这一点的好处是,使用Electron,您可以选择构建到许多目标操作系统,使用步骤1-6,然后如果您想要转到Windows或Mac,Linux执行步骤7和8,则可以选择不同的部署方法。
是的,确实如此,你可以使用electron-builder
(或者那些有简单需求的electron-forge
)来通过Squirrel打包你的应用程序,作为部署到所有电子操作系统的方式(这意味着要取代我的步骤7和8)与那些包装替代品)。 根据我的经验和我们的上下文,Squirrel解决Windows部署似乎不如使用Wix进行部署。
关于您对安装的可配置性的原始问题,使用Wix的好处是您可以使用它来完全自定义您的安装UI和体验(包括目标路径)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.