zoukankan      html  css  js  c++  java
  • InstallShield安装过程介绍

    安装包怎么做?首先需要明确安装是什么?

    记得从海洋女神的blog上看到这样的描述:"安装的本质,就是拷贝"。

    对的,安装就是复制,将你开发调试的环境和代码"复制"到目标机器上。当然这个复制不是简单的将IDE编译生成的代码组件简单的复制到目标机器上这么简单,但是大体上也是类似,这里的复制需要如下的内容:

    • 将生成的模块复制到目标机器上
    • 将引用到的模块复制到目标机器上,
    • 将相关的配置复制到目标机器上

    而安装包就是完成将这些内容复制到目标机器上的一个程序.

     

    了解了安装的本质之后然我们进入整体,如何利用InstallShield来打包应用程序,创建出你自己的安装包.

    首先我们需要下载安装InstallShield,这里我们选择2010Premier版本,不同的版本可能具有不同的限制.

    当第一次打开InstallShield你会发现它多少有点类似我们开发人员经常接触的IDE

     

    1. 首先我们来创建一个工程

    InstallShield支持很多种不同的工程这里主要介绍两种

      • InstallScript Project
      • Basic MSI Project

    这里参考Kevin wang对这两种工程的介绍:

    InstallScript脚本语言容易学习。

      1. 这种工程类型中,你可以显示全屏的广告板(背景图)。
      2. 这种工程类型利用了InstallScript脚本语言,能够让你写程序控制安装过程,而不是填写一些表格数据。
      3. InstallScript类型工程比Basic MSI类型的工程更容易学习。InstallScript工程的学习曲线比Basic MSI工程的短很多。
      4. InstallScript允许你在安装之前或之后执行自己的操作,可以利用事件驱动模型,这对于Windows开发是非常有用的。
      5. 如果你在维护一个InstallScript工程,那只能选择InstallScript工程类型。
      6. InstallScript工程没有使用Windows Installer,所以你的安装程序无法进行Windows Vista和Windows 7的Logo认证。

     

    Basic MSI工程利用Windows Installer服务来进行安装,以下一些说明也许是你选择Basic MSI工程的理由:

      1. 你的安装程序需要进行Windows Vista和Windows 7的Logo认证。这也是使用Windows Installer的主要需求之一。
      2. 你不想利用脚本语言控制你的安装过程。
      3. 你进行Basic MSI工程的维护工作,不得不选择Basic MSI。
      4. 你想最大化的与Microsoft SMS管理工具兼容。
      5. 学习Basic MSI工程需要更长时间的学习曲线。 

    简单来讲

      • InstallScript需要自己来对安装的走向通过编写InstallScript的方式进行调度,所以该工程的有点就是比较容易控制,但是相应的编码工作量比较大,但是只要掌握了InstallScript基本上就掌握了该类型项目的安装包制作.
      • Basic MSI执行过程则由Windows Installer驱动msi来一步步执行安装过程.相对来说Basic Msi工程的优点是界面有现成的可以借用,之需要在需要控制的过程进行编码即可,但是因为该工程由Windows Installer驱动所以需要理解Windows Installer的一些知识,同时对msi的原理也要有相应的理解才能比较好的掌握基于Basic Msi工程的安装包开发.

     

    在理解了InstallShield提供的工程类型的基本原理之后,然我们来动手实践一下,这里将使用Basic MSI的工程类型来进行演示.

    1,基本安装操作

    首先设定要要安装的内容,需要将哪些程序发布到目标机器中?

    这里我们就演示发布一个txt文件为例.应用程序只是需要将需要引用的模块同时发布到目标机器中即可.

    接着开发应用程序一样,首先我们需要创建一个InstallShield工程项目,这里选择Basic Msi Project.

     

    输入基本内容信息

     

     

    按照向导一步步填写

     

    添加发布内容

     

    如果不需要任何自定义操作,则不需要编写任何InstallShieldScript

    2,添加自定义控制

    首先需要添加脚本,这里编写一个简单的Hello Msi弹出窗口

    在Designer tab页中选择InstallScript

    在右侧的Files中右键添加Script File来添加一个脚本文件

     

     

    添加如下脚本

    export prototype MyFunction(HWND); //如果该函数需要供事件处理直接调用需要如此声明,且参数必须为HWND

          //如果内部调用则之需要如下声明

     

    /////////////////////////////////////////////////////

    function MyFunction(hMSI)//对应声明中的HWND用于标示MSI的Handle

        // To Do:  Declare local variables.

        STRING szMsg;//局部变量声明

    begin

     

        // To Do:  Write script that will be executed when MyFunction is called.

        szMsg = "This will install Example Program.";

     

        MessageBox (szMsg, INFORMATION);

     

    end;

     

    将脚本绑定到事件处理中

    选择Customer Action栏

    选择右侧的Customer Actions右键点开Wizards将会弹出相应的向导

    输入名称备注

    选择InstallScript类型

    选择添加的函数

    一路Next,完成之后将会在Customer Actions中显示你添加的名称

     

     

    将User Interface->InstallWelcome点开右键Edit Behavior(编辑事件处理),Edit Layout(编辑外观)选择Edit Behavior

    选择Next PushButton

    在右侧的列表框中添加一个新的Action:

    Event

    DoAction

    Argument

    选择Customer Actions下的自定义名称

    Condition

    选择1(总是执行)

     

     

     

    编译点击Test User Interface 测试运行

    在欢迎界面中点击下一步将会弹出"This will install Example Program."

    3,发布

    选择Build Project即可完成发布

     

    OK,大功告成,InstallShield安装包的打包流程就介绍到这里了.详细的信息请参考如下资料

     

    参考资料

    Stefan Krueger http://msmvps.com/blogs/installsite/default.aspx

    Rod Maupin http://www.installationdeveloper.com/

    海洋女神 http://www.cnblogs.com/Cindy_weiwei 

    奕婷  http://www.cnblogs.com/sabrinahuang/

    Kevin wang http://www.cnblogs.com/installshield/archive/2010/06/25/1765043.html

    源文档 <http://www.cnblogs.com/installshield/archive/2010/06/25/1765043.html>

     Install Shield用户手册

  • 相关阅读:
    那些年,我还在学习asp.net(二)
    那些年,我还在学ADO.NET
    那些年,我还在学css
    数据库存储过程游标函数
    数据库视图索引触发器
    那些年,我还在学asp.net(一)
    向SQL2005中导入.dbf文件中的数据
    那些年,我还在学习html
    CMenu遍历
    网站记载
  • 原文地址:https://www.cnblogs.com/SkyMouse/p/2340718.html
Copyright © 2011-2022 走看看