electron官网
开发环境
- win10X64
- Vscode
- nodejs
- yarn
使用到的框架
- vue全家桶
- element-ui
- mui
- electron-vue
技术栈
- c++
- nodejs
- html+css+js
接上篇
electron 中我们开发完成之后, 需要打包软件.官方推荐的打包工具有2中:electron-builder
和 electron-packager
我使用的是electron-packager
electron-vue 中的 electron-packager
electron-vue
中有直接帮你打包的脚本
npm or yarn
直接输入:
npm run build:win32
or
yarn run build:win32
复制代码
就可以了, 不过由于npm镜像地址的原因, 下载打包的依赖文件比较多,使用npm还是经常会下载失败的,因此还是推荐使用yarn.
32位 or 64位
有时候我们需要编译32位或者64位的程序,在
build.config.js
里面修改 arch:ia32
x64
就可以分别编译成32位和64位的应用了
完成之后就可以看到在工程目录中多了build
目录, 这就是已经打包出来的软件.
管理员权限
有时候我们希望打包出来的程序默认具有管理员权限, 这时候需要手动把windows的清单文件写进exe应用中. 步骤如下:
- 在软件exe目录下新建xml文件,名为
manifest.xml
manifest.xml
内容如下
xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<dependency>
<dependentAssembly>
<assemblyIdentity type="Win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*">assemblyIdentity>
dependentAssembly>
dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
requestedPrivileges>
security>
trustInfo>
<asmv3:application xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>truedpiAware>
<disableWindowFiltering xmlns="http://schemas.microsoft.com/SMI/2011/WindowsSettings">truedisableWindowFiltering>
asmv3:windowsSettings>
asmv3:application>
<ms_compatibility:compatibility xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1" xmlns="urn:schemas-microsoft-com:compatibility.v1">
<ms_compatibility:application xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1">
<ms_compatibility:supportedOS xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1"
Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}">ms_compatibility:supportedOS>
<ms_compatibility:supportedOS xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1"
Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}">ms_compatibility:supportedOS>
<ms_compatibility:supportedOS xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1"
Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}">ms_compatibility:supportedOS>
<ms_compatibility:supportedOS xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1"
Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}">ms_compatibility:supportedOS>
<ms_compatibility:supportedOS xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1"
Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}">ms_compatibility:supportedOS>
ms_compatibility:application>
ms_compatibility:compatibility>
assembly>
复制代码
- 确保本机有
Windows 10 Sdk
这个可以在安装Vs2017的时候选择勾选
mt
C:\Users\Administrator> mt
复制代码
会出现如下内容
切换目录到electron目录中
cd D:\electron-update\build\electron-update-win32-ia32
复制代码
输入
mt -manifest manifest.xml -outputresource:electron-update.exe;1
复制代码
这样软件启动的时候默认会已管理员权限启动了
Innosetup打包
使用electron-packager
的问题就是不能直接打成一个软件安装包, 只有一个目录, 这个时候我们就借助第三方工具innosetup
进行软件打包就好了, 官方有demo,还是很好上手的.