Exe合并压缩:将dll等文件依赖压缩到一个exe中

这篇具有很好参考价值的文章主要介绍了Exe合并压缩:将dll等文件依赖压缩到一个exe中。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


1. 背景

如果exe对某些dll有依赖,并且dll无法打包进原始exe时(比如没有该exe的工程源码,或者懒得搭建一套 VS或Python环境),可以优化将exe文件和依赖的dll文件合并成一个最终的release.exe,

通常的简便做法是直接将exe与dll放入同一目录下作为软件发布,但是相关dll依赖会直接暴露出来,并且不方便迁移

压缩合并的优点是在不同机器调用只需一个exe,而不需要在同目录放入相关dll,有一个缺点是加载速度会比直接调用dll慢一些(因为启动前需要解压)

除了Dll文件依赖,任何exe有关的文件,比如icon、binary等,都可以通过这个方式打包到一个exe中


2. 压缩方法

这类压缩打包方法有很多,这里介绍利用WinRAR来压缩打包的方法:

  • 下载WinRAR:https://www.win-rar.com/

或者也可以用国内一些类似压缩软件,

  • 下载后,选中exe和相关的依赖文件,(原始 .exe 与相关dll文件放在同一目录下)

Exe合并压缩:将dll等文件依赖压缩到一个exe中

  • 右键winRAR选择 “Add to archive”:添加到压缩文件中:

Exe合并压缩:将dll等文件依赖压缩到一个exe中


3. 配置自解压(SFX)选项

在弹出来的压缩选项中,进行如下配置:

  • 选中自解压文件 SFX (SelF-eXtracting) ,设置一个新的exe文件名,比如Release.exe

Exe合并压缩:将dll等文件依赖压缩到一个exe中

  • 在Advance选项中,选中SFX options 高级自解压选项

Exe合并压缩:将dll等文件依赖压缩到一个exe中

  • 设置解压之后要执行的文件:

Exe合并压缩:将dll等文件依赖压缩到一个exe中

  • 选中解压到临时文件夹,安静模式选择全部隐藏

Exe合并压缩:将dll等文件依赖压缩到一个exe中

  • 勾选解压并更新文件,覆盖所有文件

Exe合并压缩:将dll等文件依赖压缩到一个exe中

  • 最后设置下SFX exe的图标文件

Exe合并压缩:将dll等文件依赖压缩到一个exe中


4. 执行新的exe

点击确定后, 会在目录下生成合并后的Release.exe, 即可放到任何PC或者目录执行

Exe合并压缩:将dll等文件依赖压缩到一个exe中

原理:当双击运行新生成的Release.exe时,会生成一个临时文件夹,将所有的内容解压,并运行setup配置的.exe。当关闭程序时,这个临时文件夹就会删除。

该临时文件夹一般默认在C:\Users\xxx\AppData\Local\Temp\RarSFX0 目录。。

当然如果有工程源码,还是推荐通过工程方式打包到一个exe中,
比如Python通过PyInstaller 将DLL文件直接打包进exe, 可参考: https://howiexue.blog.csdn.net/article/details/129372320


博主热门文章推荐:

Exe合并压缩:将dll等文件依赖压缩到一个exe中

一篇读懂系列:

  • 一篇读懂无线充电技术(附方案选型及原理分析)
  • 一篇读懂:Android/iOS手机如何通过音频接口(耳机孔)与外设通信
  • 一篇读懂:Android手机如何通过USB接口与外设通信(附原理分析及方案选型)

LoRa Mesh系列:

  • LoRa学习:LoRa关键参数(扩频因子,编码率,带宽)的设定及解释
  • LoRa学习:信道占用检测原理(CAD)
  • LoRa/FSK 无线频谱波形分析(频谱分析仪测试LoRa/FSK带宽、功率、频率误差等)

网络安全系列:

  • ATECC508A芯片开发笔记(一):初识加密芯片
  • SHA/HMAC/AES-CBC/CTR 算法执行效率及RAM消耗 测试结果
  • 常见加密/签名/哈希算法性能比较 (多平台 AES/DES, DH, ECDSA, RSA等)
  • AES加解密效率测试(纯软件AES128/256)–以嵌入式Cortex-M0与M3 平台为例

嵌入式开发系列:

  • 嵌入式学习中较好的练手项目和课题整理(附代码资料、学习视频和嵌入式学习规划)
  • IAR调试使用技巧汇总:数据断点、CallStack、设置堆栈、查看栈使用和栈深度、Memory、Set Next Statement等
  • Linux内核编译配置(Menuconfig)、制作文件系统 详细步骤
  • Android底层调用C代码(JNI实现)
  • 树莓派到手第一步:上电启动、安装中文字体、虚拟键盘、开启SSH等
  • Android/Linux设备有线&无线 双网共存(同时上内、外网)

AI / 机器学习系列:文章来源地址https://www.toymoban.com/news/detail-462638.html

  • AI: 机器学习必须懂的几个术语:Lable、Feature、Model…
  • AI:卷积神经网络CNN 解决过拟合的方法 (Overcome Overfitting)
  • AI: 什么是机器学习的数据清洗(Data Cleaning)
  • AI: 机器学习的模型是如何训练的?(在试错中学习)
  • 数据可视化:TensorboardX安装及使用(安装测试+实例演示)

到了这里,关于Exe合并压缩:将dll等文件依赖压缩到一个exe中的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 判断一个dll/exe是32位还是64位

    通过记事本判断(可判断C++或者C#) 64位、将dll用记事本打开,可以看到一堆乱码,但是找到乱码行的第一个PE,如果后面是d?则为64位 32位、将dll用记事本打开,可以看到一堆乱码,但是找到乱码行的第一个PE,如果后面是L则为32位,如下图;

    2024年02月21日
    浏览(27)
  • 记录使用gswin64.exe合并多个pdf为一个pdf

    目录 下载gs920w64.exe 安装 配置相关信息  验证是否安装配置成功   合并多个pdf文件 https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/tag/gs920   ​ 正常安装,记住自己的安装目录: ​   安装完后,然后进入自己的安装目录gsgs9.20,复制bin的目录位置 打开环境变量,系统变量

    2024年02月08日
    浏览(30)
  • python 打包项目(包含.ui文件,.dll文件)为exe可执行文件

    目录 1. 背景 2. 生成.spec文件: 3. 编辑.spec文件: 4. 最后生成单个可执行文件.exe:  5 补充: 1. 背景         最近在项目中想做一个用于烧录MCU的上位机给工厂用。于是在某工程模板上简单开发了一个基于python 和pyQt5的上位机软件。项目包含多个.py文件,多个.dll文件,一

    2024年02月16日
    浏览(30)
  • 创建傀儡进程svchost.exe并注入DLL文件(Shellcode)

    本文主要利用 SetThreadContext 修改进程中的线程上下文来实现Dll注入(ShellCode)。 实现原理 首先,使用 CreateProcess 函数创建svchost.exe进程,并且设置创建进程的标志为 CREATE_SUSPENDED,即表示新进程的主线程被挂起。 使用 GetThreadContext,设置标志为 CONTEXT_ALL,获取新进程中所有的

    2024年02月02日
    浏览(32)
  • cmake扩展(2)——windows下动态设置输出文件(dll/exe)版本

    windows下设置文件的版本需要通过VERSIONINFO接口,详情参考VERSIONINFO resource。这里我们根据模板做了一定的修改。 FILEVERSION和PRODUCTVERSION为必填项。内容以\\\',\\\'分隔,输出以\\\'.\\\'分隔(如设置为1,1,3,5,则实际输出版本为1.1.3.5)。可以直接是一整个变量,也可以是多个变量以\\\',\\\'隔开。 而

    2024年02月13日
    浏览(28)
  • C++开发实战(二):打开已有工程,并编译生成dll、exe等文件

    1、如下几张图,提示很友好,但我都点击了确定,并进行了运行,提示: 此项目需要 MFC 库。从 Visual Studio 安装程序(单个组件选项卡)为正在使用的任何。。。 2、根据提示安装依赖库 (1)搜索栏搜索应用Visual Studio Installer (2)双击打开,选择单个组件安装,选择 MFC 库(

    2024年02月06日
    浏览(78)
  • 使用pyinstaller将具有多个python文件的项目打包为exe(含依赖库)

    1、将需要打包有python文件放到一个文件夹,例如下图所示的Demo文件夹,其中ClickEveryDay.py为主文件,telegram.ico为图标文件。   2、生成主函数对应的spec文件 命令:在Demo文件夹路径下使用:pyi-makespec ClickEveryDay.py,将产生一个ClickEveryDay.spec文件。 3、修改ClickEveryDay.spec文件:加

    2024年02月11日
    浏览(37)
  • 查看exe和dll等二进制文件时间戳(生成时间)的工具与方法介绍

    目录 1、为何要查看二进制文件的时间戳 2、使用PEViewer工具查看文件的时间戳

    2023年04月14日
    浏览(40)
  • exe4j打包生成exe文件详细使用教程,示例一个需要加载外部文件的GUI打包过程

    在这里通过举例: 将一个GUI界面工具生成jar包并使用exe可执行文件的过程来演示,其中也会附带打包过程中几种产生的问题。 注意:如果你的GUI工具存在以下问题: 这里同样存在解决方案,不过文案先介绍一种成功的方式: 使用maven将第三方依赖包一同打包生成jar包,使用e

    2024年01月24日
    浏览(32)
  • 关于如何创建一个windows窗口的exe文件

    如何创建一个windows窗口exe文件,具体参照这个博主: http://t.csdn.cn/pfQK5 以下是实现代码,注意用vs打开: 之后用PE文件分析工具对这个PE文件的格式进行分析

    2024年02月12日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包