码迷,mamicode.com
首页 > Windows程序 > 详细

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

时间:2017-05-07 00:14:51      阅读:266      评论:0      收藏:0      [点我收藏+]

标签:top   标准   install   判断   存在   str   com   过程   空间   

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应用程序制作安装包

标签:top   标准   install   判断   存在   str   com   过程   空间   

原文地址:http://www.cnblogs.com/hustdc/p/6817510.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!