zoukankan      html  css  js  c++  java
  • 为自己编写的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

  • 相关阅读:
    Ghost Button制作教程及设计趋势分析
    onhashchange事件--司徒正美
    window.location.hash属性介绍
    优质UI的7条准则(一)
    当在浏览器地址栏输入一个网址的时候,究竟发生了什么?
    全球最快的JS模板引擎
    眨眼登录表单
    DIV+CSS规范命名
    es6--export,import
    es6--class
  • 原文地址:https://www.cnblogs.com/hustdc/p/6817510.html
Copyright © 2011-2022 走看看