安装包的原理与制作安装包的流程
想要制作一个一键打包并生成安装包(或安装程序)的小工具, 个人总结, 希望能帮到你.
本文用以下例子说明.
一个项目, 包含两个文件, app.yaml 和 app.exe.
- 什么是安装程序?
- 一个可执行文件
- 一个包含项目所有文件(本例为app.yaml和app.exe)的一个压缩包
- 在执行完之后会在安装目录添加项目文件(app.yaml 和 app.exe)的可执行程序
- 生成安装包的逻辑
- 打包项目文件, 即将项目文件压缩(加密), 如a.zip
- 生成安装包文件的可执行代码, 即在安装时所执行的程序, 此部分程序的重要功能:
- 解压(解密)在第1步生成的压缩(加密)文件
- 将解压(解密)出的文件移动到安装目录
- 将可执行代码编译成可执行文件, 如a.exe
- 将可执行文件与压缩文件以某种格式合并为一个文件, 即a.exe+a.zip
- 生成安装包完成
- 点击或执行安装包之后的逻辑
- 运行可执行代码部分, 即执行a.exe
- 可执行代码须解压(解密)出项目文件, 即a.zip
- 将解压(解密)出的项目文件(即将a.zip解压)移动到安装目录
- 安装完成
需要注意, 在生成安装包过程中, 将可执行文件与压缩文件以某种格式合并, 合并后的文件须仍可执行, 但仅执行文件中的a.exe部分.
安装包的原理与制作安装包的流程相关推荐
- 使用Advanced Installer制作IIS安装包(二:配置安装包依赖项和自定义dll)
原文:使用Advanced Installer制作IIS安装包(二:配置安装包依赖项和自定义dll) 前言:上篇使用Advanced Installer制作IIS安装包(一:配置IIS和Web.con ...
- vs2005制作安装包(自动安装.net framework 2.0)(小寿原创)
vs2005制作安装包(自动安装.net framework 2.0)(小寿原创) 新建项目-> 其他项目类型->安装和部署->安装向导! 安装向导会提示你添加要安装的文件,这时你可 ...
- C#进阶系列——使用Advanced Installer制作IIS安装包(二:配置安装包依赖项和自定义dll)...
C#进阶系列--使用Advanced Installer制作IIS安装包(二:配置安装包依赖项和自定义dll) 原文:C#进阶系列--使用Advanced Installer制作IIS安装包(二:配置 ...
- VS2008制作安装包
图文详细地址:http://www.itwis.com/html/net/kaifagongju/20090218/3387.html VS2008制作安装包 安装与部署 2010-03-13 14: ...
- Debian、Ubuntu源码编译制作安装包(二)
在<Debian.Ubuntu源码编译制作安装包(一)>文章中描述了dpkg基本制作安装包过程,本篇文章描述如何增加patch及解决出错问题. 章节预览: 5. 增加patch 6. 修改 ...
- Debian、Ubuntu源码编译制作安装包(一)
Debian.Ubuntu系列linux操作系统制作安装包相较于CentOS更简便一些,如"dpkg -b"指令即可重新打包.如果需要源码级制作安装包则更困难一些,接下来,我们逐步 ...
- 利用WIX制作安装包(2)
利用WIX制作安装包(2) 原文 利用WIX制作安装包(2) 这一篇文章将为大家介绍如何使用WIX自定义UI.上一篇文章我们讲过WIX为我们提供了五种安装界面.每种安装界面都是由不同的Dialog组成 ...
- 为自己编写的windows应用程序制作安装包
1 写好了一个windows程序之后如何制作安装包 这个在vs中就可以直接发布了,可以制作msi的安装包和exe的安装包. 2 window应用程序安装包做了哪些事情 rpm安装包的话,只是把相应的文 ...
- vs 2019使用Installer Project制作安装包的问题
项目场景: vs 2019 C# 项目使用Installer Project制作安装包 问题描述: 1.vs 2019 中visual studio marketplace中无法下载Installer ...
最新文章
- Java学习-jsp内置对象Session
- GRUB and LVM and EVMS
- [日志]挂在树上的茶壶
- 从 GMM 到 EM 算法
- TypeScript 再次发布一个奇怪的版本:3.3.4000
- python面试必备10题_不吹不擂,你想要的Python面试都在这里了【315+道题】+精心整理的解答...
- go语言 python excel_下个10年,Go能取代Python成为开发者的首选语言吗?
- word如何调整字间距离_word标准字间距怎么设置
- 超声波加湿器原理与检修
- pycharm远程操作linux进行开发
- 在线一元二次方程式计算器 源码
- 每日一诗词 —— 将进酒
- python函数文档说明调用方式_调用函数方法
- NOIP 2016 天天爱跑步
- 学生护眼台灯aa和a的区别?分享适合学生的护眼台灯
- time秒和年月日时分秒的转化
- 刷脸支付设备深度融合多项赋能
- 解密DeathStalker
- PHP远程控制cmd,B374K PHP WEBSHELL:一款简单却功能强大的远程管理工具
- (二)WI-FI辅助定位