electron-vue 开发(4) 打包工具的使用以及管理员权限

electron官网

开发环境

  • win10X64
  • Vscode
  • nodejs
  • yarn

使用到的框架

  • vue全家桶
  • element-ui
  • mui
  • electron-vue

技术栈

  • c++
  • nodejs
  • html+css+js

接上篇

electron 中我们开发完成之后, 需要打包软件.官方推荐的打包工具有2中:electron-builderelectron-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应用中. 步骤如下:

  1. 在软件exe目录下新建xml文件,名为manifest.xml
  2. 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>
复制代码
  1. 确保本机有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,还是很好上手的.

你可能感兴趣的:(electron-vue 开发(4) 打包工具的使用以及管理员权限)