• 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
  • 相关阅读:
    webpack入门
    vue 知识记录
    vue 服务端渲染案例
    nodemon的简单配置和使用
    vue 非父子组件通信-中转站
    position笔记
    koa 练习
    笔记
    git push代码时的'git did not exit cleanly (exit code 1)'问题解决
    块级元素的text-align对行内元素和果冻元素(inline-block)的作用
  • 原文地址:https://www.cnblogs.com/dulvyizhihua/p/1340156.html
Copyright © 2020-2023  润新知