zoukankan      html  css  js  c++  java
  • About InstallShield Condition

    在使用InstallShield时,可以采用Scripts,也可以使用Basic MSI等其他方式制作安装包。

    最近我接触了一下以Basic MSI制作安装包的过程,从中发现Condition在其中扮演着重要的角色,按照用途的不同大致可以分为两种:

    1、安装包在检查目标机器环境时的条件限制。

    这种条件一般反映在开始安装时,弹出个对话框(也可是其他形式)告诉用户“您机器上还不满足安装条件,请安装xxx”,它有可能只是个提示,后续还能安装,也有可能无法进行后续安装。这种条件在InstallShield中是如何设置的?

    一般(最好,虽然有有有好的界面可以设置,但是缺少灵活性)使用General Information->Product Properties->Install Condition来设置条件,这些条件语句一般都是以目标机器的某些系统变量为基础做设置的,那么问题就出现了,如何获得和存储这些值呢?

    System Search就很好的解决了这一问题,我们可以用它搜索目标机器是不是安装了Visual Studio,是不是有某些文件(bt啊),然后再以某个Property(可以事先新建所需要的Property)来存储,甚至可以直接冠以Condition,让其成为General Information->Product Properties->Install Condition中的一个条件。

    ok,这样第一种情况就算搞定。

    2、安装包在安装过程中的条件判断。

    这种情况比较复杂,所以只描述一下对于Customer Action的限制。

    在Basic MSI安装包中会有很多个Customer Action,而目标机器的情况也很复杂,因此就需要根据情况来判定哪些Action该运行,哪些不该运行。

    (1)全新安装时,可以使用存储在Property中值来做Condition;

    (2)完全卸载和更改(Repair、Update)时,除了使用Property,还可以使用诸如Installed(软件已经安装,即相对于Add/Remove Program)、Not Installed(软件没有安装)、REMOVE=“ALL”(完全卸载),以及!FeatureName=&FeatureName(ReInstall时会用到)等方法进行限制,具体的内容可以参考installshield_conditions.pdf,也可以参考InstallShield的联机帮助内容:Condition Statement Syntax和Examples of Condition Statement Syntax等。

    Author:dulvyizhihua
  • 相关阅读:
    Android popupwindow 失去焦点或者点击空白区域时消失的解决方法
    九度 题目1394:五连击数组
    地市级地铁数据管理信息系统解决方式
    用位运算实现两个整数的加法运算
    Leaflet--建设移动设备友好的互动地图
    atitit.自适应设计悬浮图片的大小and 位置
    PIM-DM协议内核触发机制及协议执行机制记录
    整合struts2+spring+hibernate
    UITableViewCell的prepareForReuse方法
    《linux 内核全然剖析》编译linux 0.12 内核 Ubuntu 64bits 环境
  • 原文地址:https://www.cnblogs.com/dulvyizhihua/p/1340156.html
Copyright © 2011-2022 走看看