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

时间:2023-03-09 04:28:37
为自己编写的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