为自己编写的windows应用程序制作安装包
1 写好了一个windows程序之后如何制作安装包
这个在vs中就可以直接发布了,可以制作msi的安装包和exe的安装包。
2 window应用程序安装包做了哪些事情
rpm安装包的话,只是把相应的文件拷贝到不同的目录。那么window安装包做了什么呢?
msi里面有一个table,里面是一条条的指令,windows installer会解释并执行这些指令。
它还是会把安装包里面的文件拷贝到相应的目录。关键是它除了拷贝还做了哪些事情呢?
3 安装包除了把相应的文件放到不同的目录下,还做了哪些事情,比如注册表
第一,将安装的产品告诉给系统。
第二,查找系统是否有我需要的某个文件,不如某个动态库。
第三,计算本次安装需要占用的磁盘空间的大小,判断当前的磁盘空间是否够。
第四,修改注册表。
4 安装包操作注册表是为什么?注册表在程序安装和运行过程中起到了什么作用
可以在制作安装包的时候向注册表中添加键值对,这个键值对可以在代码中访问。
5 windows installer
5.1 windows installer解析windows安装包中的指令table,完成安装过程
5.2 windows installer的标准动作
安装包中被windows installer使用的tables:
有很多的tables
5.2.1 发布产品、特性和部件的action
就是把产品、特性和部件告诉给windows系统。
5.2.2 文件查找action
安装的时候,查找系统中是否存在某个文件。
5.2.3 file costing action
看当前的安装需要消耗多少的磁盘空间。
5.2.4 文件安装action
就是讲指定的文件从源目录拷贝到目的地目录。
5.2.5 修改注册表action
当部件和文件都安装到目的地目录之后,就可以修改注册表了。只有在文件安装action执行完成之后,才能执行注册表修改action。
5.2.5.1 RegisterClassInfo action
注册安装部件的COM类信息。
5.2.5.2 RegisterExtensionInfo action
5.2.5.3 RegisterProgIdInfo action
5.2.5.4 RegisterMIMEInfo action
5.2.5.5 WriteRegistryValues action
5.2.5.6 RemoveRegistryValues action
这个是卸载的时候执行的。
参考资料:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa372022(v=vs.85).aspx
orca tool
https://msdn.microsoft.com/en-us/library/windows/desktop/aa370557(v=vs.85).aspx
为自己编写的windows应用程序制作安装包的更多相关文章
- c# 编写windows 服务,并制作安装包
对服务的认识有很多个阶段. 第一阶段:当时还在用c++,知道在一个进程里while(True){},然后里面做很多很多事情,这就叫做服务了,界面可能当时还用Console控制台程序. 第二阶段:知道了 ...
- NSIS制作安装包笔记(一):NSIS介绍、使用NSIS默认向导脚本制作Windows安装包
前言 做产品时,定制的自定义安装界面常有的,使用NSIS + Qt可以完美的定制基于QT的安装界面,先从纯NSIS开始,制作常规的安装包. 应用程序的发布方式 应用程序发布的时候,具备以下 ...
- 【原创】VB6.0应用程序安装包的生成(Setup Factory 9.0制作安装包的方法)
VB6.0应用程序安装包的生成,利用其自带的打包工具生成的安装程序很简陋,一点不美观:如果想让自己的应用程序安装的时候显得高大上一点,本教程提供使用Setup Factory 9.0制作安装包的方法. ...
- 循序渐进做项目系列(5):制作安装包,谁人都可以!——VS制作安装包简明教程
一开始让我做安装包的时候,其实我是拒绝的.因为我根本就不会做安装包.查了资料之后,我很懵,很晕,很乱,因为不清晰,不简明,不直白.然而经过一番彷徨的挣扎,我终于发现:制作安装包,谁人都可以!故挥狼毫, ...
- VS 制作安装包小窥
难得忙里偷闲,看到有关VS制作安装包,按下文小试一把,还行,比不上Installshield. 首先在打开 VS2010 > 文件 >新建项目 创建一个安装项目 XXX 在“目 ...
- 利用WIX制作安装包(2)
原文 利用WIX制作安装包(2) 这一篇文章将为大家介绍如何使用WIX自定义UI.上一篇文章我们讲过WIX为我们提供了五种安装界面.每种安装界面都是由不同的Dialog组成.在这里我们挑选一种比较常用 ...
- 使用VS2015制作安装包( 含相关的下载链接)
补充: 在看下面的教程过程中,如果在下面的步聚1中没有 " Visual Studio Installer", 则需要通过下面的链接进行安装 Visual Studio Insta ...
- 使用Qt installer framework制作安装包
一.介绍 使用Qt库开发的应用程序,一般有两种发布方式:(1)静态编译发布.这种方式使得程序在编译的时候会将Qt核心库全部编译到一个可执行文件中.其优势是简单单一,所有的依赖库都集中在一起,其缺点也很 ...
- [转载]如何用Visual Studio制作安装包
原文地址:如何用Visual Studio制作安装包作者:蓝羽幽游 环境:Microsoft Visual Studio 2010 语言:C# 构架:.NET Framework 2.0 解决方案名称 ...
随机推荐
- poj 1269 判断直线的位置关系
题目链接 题意 判断两条直线的位置关系,重合/平行/相交(求交点). 直线以其上两点的形式给出(点坐标为整点). 思路 写出直线的一般式方程(用\(gcd\)化为最简), 计算\(\begin{vma ...
- WebRTC VoiceEngine综合应用示例(二)——音频通话的基本流程(转)
下面将以实现一个音频通话功能为示例详细介绍VoiceEngine的使用,在文末将附上相应源码的下载地址.这里参考的是voiceengine\voe_cmd_test. 第一步是创建VoiceEngin ...
- 汇编指令详解--as手册
https://sourceware.org/binutils/docs/as/ Table of Contents 1 Overview 1.1 Structure of this Manual 1 ...
- Stockbroker Grapevine(最短路)
poj——1125 Stockbroker Grapevine Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 36112 ...
- 空扫描Idle Scanning
空扫描Idle Scanning 空扫描Idle Scanning是一种借助第三方实施的端口扫描技术,可以很好的隐蔽扫描主机本身.它的实现基于以下两个TCP工作机制. (1)在TCP三次握手阶 ...
- mybatis 源码学习(一)配置文件初始化
mybatis是项目中常用到的持久层框架,今天我们学习下mybatis,随便找一个例子可以看到通过读取配置文件建立SqlSessionFactory,然后在build拿到关键的sqlsession,这 ...
- 使用jersey组件向图片资源服务器上传图片报403,405,409 Method Not Allowed错误
一.错误如下 在使用Jersey进行图片跨服务上传时遇到了如下问题: 二.代码如下 1.pom.xml <dependency> <groupId>com.sun.jersey ...
- IE使用多彩文档上传数据库报错
使用多彩文档,用IE浏览器提交表单,双引号里面包含单引号,导致数据库插入不了,而用chrome浏览器不会报错,自动过滤单引号, 解决:content.replace("'", &q ...
- 布斯(Steve Jobs)在斯坦福大学的演讲稿,中英文对照版
2005年6月14日,苹果CEO史蒂夫·乔布斯(Steve Jobs)在他的母校斯坦福大学的毕业典礼发表了著名的演讲,关于这段演讲,你会看到N多人的推荐(比如同样喜欢在大学演讲的李开复先生).此前曾经 ...
- [转] DataSet的的几种遍历
1. 多表多行多列的情况 foreach (DataTable dt in YourDataset.Tables) //遍历所有的datatable { foreach (DataRow dr in ...