想要制作一个一键打包并生成安装包(或安装程序)的小工具, 个人总结, 希望能帮到你.

本文用以下例子说明.

一个项目, 包含两个文件, app.yaml 和 app.exe.

  1. 什么是安装程序?

    1. 一个可执行文件
    2. 一个包含项目所有文件(本例为app.yaml和app.exe)的一个压缩包
    3. 在执行完之后会在安装目录添加项目文件(app.yaml 和 app.exe)的可执行程序
  2. 生成安装包的逻辑
    1. 打包项目文件, 即将项目文件压缩(加密), 如a.zip
    2. 生成安装包文件的可执行代码, 即在安装时所执行的程序, 此部分程序的重要功能:
      1. 解压(解密)在第1步生成的压缩(加密)文件
      2. 将解压(解密)出的文件移动到安装目录
    3. 将可执行代码编译成可执行文件, 如a.exe
    4. 将可执行文件与压缩文件以某种格式合并为一个文件, 即a.exe+a.zip
    5. 生成安装包完成
  3. 点击或执行安装包之后的逻辑
    1. 运行可执行代码部分, 即执行a.exe
    2. 可执行代码须解压(解密)出项目文件, 即a.zip
    3. 将解压(解密)出的项目文件(即将a.zip解压)移动到安装目录
    4. 安装完成

需要注意, 在生成安装包过程中, 将可执行文件与压缩文件以某种格式合并, 合并后的文件须仍可执行, 但仅执行文件中的a.exe部分.

安装包的原理与制作安装包的流程相关推荐

  1. 使用Advanced Installer制作IIS安装包(二:配置安装包依赖项和自定义dll)

    原文:使用Advanced Installer制作IIS安装包(二:配置安装包依赖项和自定义dll) 前言:上篇使用Advanced Installer制作IIS安装包(一:配置IIS和Web.con ...

  2. vs2005制作安装包(自动安装.net framework 2.0)(小寿原创)

    vs2005制作安装包(自动安装.net framework 2.0)(小寿原创) 新建项目-> 其他项目类型->安装和部署->安装向导! 安装向导会提示你添加要安装的文件,这时你可 ...

  3. C#进阶系列——使用Advanced Installer制作IIS安装包(二:配置安装包依赖项和自定义dll)...

    C#进阶系列--使用Advanced Installer制作IIS安装包(二:配置安装包依赖项和自定义dll) 原文:C#进阶系列--使用Advanced Installer制作IIS安装包(二:配置 ...

  4. VS2008制作安装包

    图文详细地址:http://www.itwis.com/html/net/kaifagongju/20090218/3387.html VS2008制作安装包 安装与部署 2010-03-13 14: ...

  5. Debian、Ubuntu源码编译制作安装包(二)

    在<Debian.Ubuntu源码编译制作安装包(一)>文章中描述了dpkg基本制作安装包过程,本篇文章描述如何增加patch及解决出错问题. 章节预览: 5. 增加patch 6. 修改 ...

  6. Debian、Ubuntu源码编译制作安装包(一)

    Debian.Ubuntu系列linux操作系统制作安装包相较于CentOS更简便一些,如"dpkg -b"指令即可重新打包.如果需要源码级制作安装包则更困难一些,接下来,我们逐步 ...

  7. 利用WIX制作安装包(2)

    利用WIX制作安装包(2) 原文 利用WIX制作安装包(2) 这一篇文章将为大家介绍如何使用WIX自定义UI.上一篇文章我们讲过WIX为我们提供了五种安装界面.每种安装界面都是由不同的Dialog组成 ...

  8. 为自己编写的windows应用程序制作安装包

    1 写好了一个windows程序之后如何制作安装包 这个在vs中就可以直接发布了,可以制作msi的安装包和exe的安装包. 2 window应用程序安装包做了哪些事情 rpm安装包的话,只是把相应的文 ...

  9. vs 2019使用Installer Project制作安装包的问题

    项目场景: vs 2019 C# 项目使用Installer Project制作安装包 问题描述: 1.vs 2019 中visual studio marketplace中无法下载Installer ...

最新文章

  1. Java学习-jsp内置对象Session
  2. GRUB and LVM and EVMS
  3. [日志]挂在树上的茶壶
  4. 从 GMM 到 EM 算法
  5. TypeScript 再次发布一个奇怪的版本:3.3.4000
  6. python面试必备10题_不吹不擂,你想要的Python面试都在这里了【315+道题】+精心整理的解答...
  7. go语言 python excel_下个10年,Go能取代Python成为开发者的首选语言吗?
  8. word如何调整字间距离_word标准字间距怎么设置
  9. 超声波加湿器原理与检修
  10. pycharm远程操作linux进行开发
  11. 在线一元二次方程式计算器 源码
  12. 每日一诗词 —— 将进酒
  13. python函数文档说明调用方式_调用函数方法
  14. NOIP 2016 天天爱跑步
  15. 学生护眼台灯aa和a的区别?分享适合学生的护眼台灯
  16. time秒和年月日时分秒的转化
  17. 刷脸支付设备深度融合多项赋能
  18. 解密DeathStalker
  19. PHP远程控制cmd,B374K PHP WEBSHELL:一款简单却功能强大的远程管理工具
  20. (二)WI-FI辅助定位

热门文章

  1. Python物理建模初学者指南
  2. 弱一致性、CAP、BASE与NoSQL
  3. Geany下载与安装
  4. Android 高仿微信朋友圈动态, 支持双击手势放大并滑动查看图片。
  5. 十二、Vue项目 - 详情页动态路由、banner布局和公用图片画廊组件拆分
  6. 秒杀抢红包的思考和总结
  7. 计算机表格要学些什么,几个Excel表格的制作方法
  8. 从零搭建移动H5开发项目实战
  9. PSO算法文献阅读笔记
  10. codeSourcery 交叉编译环境搭建