最近,在做electron项目中,使用了第三方dll,开发环境运行一切正常,可是当我们打包,最后生成的可执行程序再执行,发现调用dll总是不成功,猜测是少了dll。

后来发现果真是路径问题,我们开发环境,可以通过path.resolve()或着path.join()来指定任意目录下的dll,但是问题来了,到了构建生产环境的时候,我们想象的目录并没有按照开发环境的目录来进行打包了。

很明显的一条就是,我们在根目录下的package.json等文件就没有build到项目的根目录下。构建的时候,只是把相关的html,css,js等文件进行了合并压缩。而dll并不在这些文件之列,自然就不会打包到项目中了。

既然问题明确了,那就需要解决这个打包除html,css,js等文件之外的文件问题了。

好在package.json配置build节点下有这么一个配置项:extraResources:[{from:'',to:''}],我们只需要将我们需要打包的文件加入到这个配置中即可。

比如,我把dll文件放在了static目录下,这样呢,最后build的时候,不会生成这个目录,但是会有一个resources目录,而这个目录似乎就是根目录的一个软链接。代码中,可以这样写:

var dllpath = path.resolve(__dirname,"../../../static/visadll.dll");
if(process.env.NODE_ENV == 'production'){dllpath = path.resolve(__dirname,"../../../visadll.dll");
}

项目结构如下所示:

|-static/
    |-src/renderer/components/

我的vue文件代码所在位置的上三级目录与static的位置是同一级。

这样,package.json的配置项build下的extraResouces配置如下:

这些需要的文件会打包到根目录下的resources目录下。这个目录很奇怪的地方在于,它虽然是根目录下的resources,但是它在path.resolve()解析到根目录即可,他会自动包含resources目录。

如下图所示,我们经过新的配置并构建,构建完成,打包后项目根目录下的resources目录就会包含我们的dll文件了。

electron项目构建打包缺少dll文件的问题解决办法相关推荐

  1. VS2019install插件生成MSI安装包缺少Dll文件的解决方法

    在学习了VS2019简单快速的打包exe文件(图文教程)_兔子你等着的博客-CSDN博客_vs打包exe所显示的打包流程之后还是出现了一定的问题,安装文件MSI在其他主机上安装的时候可能会由于缺少DL ...

  2. 执行exe报计算机中丢失qtdll,Qt入门教程(2) 直接运行Qt生成的exe报错缺少dll文件 | 阿拉灯...

    摘要 在Qt Creator中写完程序,在Qt Creator中的debug或者release状态下运行程序都是没有问题的,并且会在工程目录下生成对应的debug或者release文件夹,里面存放着生 ...

  3. 计算机丢失dll文件怎么弄,电脑缺少DLL文件该怎么办? 这个办法轻松解决!

    原标题:电脑缺少DLL文件该怎么办? 这个办法轻松解决! 电脑缺少****.文件,这种类似的提示我相信好多人都遇到过,不管是开机提示,还是打开应用提示,其实解决办法很简单的, 请看步骤. 安全卫士修复 ...

  4. 缺少dll文件怎么办?修复dll文件的多种方法

    缺少dll文件怎么办?当您试图启动某个应用程序或游戏时,可能会遇到"缺少DLL文件"的错误提示.DLL文件是动态链接库文件的缩写,它们包含在计算机上的许多应用程序和游戏中,并且是确 ...

  5. 电脑计算机丢失很多东西怎么办,电脑缺少dll文件怎么办

    大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. 电脑缺少dll文件的解决方法: 1.您可以用腾讯电脑管家修复下: 2.打开电脑管家――电脑诊所――软件问题――缺少dll文件. 计 ...

  6. 正当防卫4无法启动程序因为计算机中丢失,正当防卫4缺少dll文件解决方法介绍-正当防卫4epic版缺少dll文件怎么解决_牛游戏网...

    <正当防卫4>最近因为epic的免费赠送相信来玩的小伙伴很多吧,不过在游玩是经常会出现缺少dll文件的问题,对于这些问题如何解决可能很多小伙伴还不清楚,所以小编这里就为大家带来了<正 ...

  7. Guitar Pro常见问题之缺少dll文件的解决方法

    Guitar Pro 7软件界面完全重新设计,程序更流畅,速度更快,并兼容高分辨率屏幕. Guitar Pro正确安装之后可以进行编曲练习,安装教程参见http://www.guitarpro.cc/ ...

  8. Android项目clean之后R.java文件丢失解决办法

    2019独角兽企业重金招聘Python工程师标准>>> Android项目clean之后R.java文件丢失解决办法 1.  Android Tools -> fix proj ...

  9. Java面试poi中excel版本大小_java 中 poi解析Excel文件版本问题解决办法

    java 中 poi解析Excel文件版本问题解决办法 发布时间:2020-10-02 03:46:15 来源:脚本之家 阅读:91 作者:程诺 poi解析Excel文件版本问题解决办法 poi解析E ...

最新文章

  1. JS 原型链图形详解
  2. vue 固定div 滚动_vue移动端 导航吸顶(固定定位)页面滚动出现抖动
  3. 2013年3月百度之星A题
  4. 利用日志传送来实现数据库的可用性
  5. html equls比较方法,编写高质量equals方法
  6. Django--ORM基本操作
  7. 南理工14级第4组软件课程设计报告
  8. OpenCV-Python实战(番外篇)——利用 K-Means 聚类进行色彩量化
  9. 播放器市场瞧一瞧: 暴风影音和豪杰解霸前身后世
  10. php 三菱plc,三菱plc编程
  11. JAVA课设——俄罗斯方块
  12. 隐藏IP地址的三种方法
  13. 令人比较失落的IT圈子-关于华为裁员
  14. 计算机中丢失d3dx9 43.dll,游戏提示“没有找到d3dx9_43.dll”的解决方法
  15. 安装semantic segmentation editor
  16. GitHub上20多万张不可描述图片的数据集
  17. 第4章第1节-不撞南墙不回头-深度优先搜索
  18. linux解压工具软件,linux 安装rar解压工具
  19. Python爬取某宝菠萝数据,并可视化分析销量
  20. poj3253切割木板(哈夫曼树) 贪心【优先队列】

热门文章

  1. 【Gazebo入门教程】第五讲 控制器插件的编写与配置(上)
  2. 【解决方案】EasyGBS武警消防应急行业视频解决方案 4G便携单兵程视频监控指挥系统介绍
  3. 只需解决这几件事,即可轻松玩转黑苹果系统虚拟机
  4. TFTP协议报文过防火墙不通
  5. 快来带您了解低轨移动卫星通信的发展意义
  6. Matplotlib详细教程
  7. 【cocos2d-x官方文档】Chipmunk(转)
  8. 【python】一篇玩转正则表达式
  9. web开发过程中,浏览器无法弹出Excel下载的提示
  10. 国际标准:ISO 8601