Installshield 2009,防止在MSI修复期间重新安装功能

时间:2011-09-06 08:34:30

标签: installation windows-installer installshield

我有一个MSI软件包,首次安装时会将SQL脚本安装到SQL Server上。使用Installshield中的SQL Script功能可以正常工作。

在修复MSI期间,将重新运行SQL脚本。我想防止这种情况发生,我只希望脚本只在安装时运行。

我尝试过很多方法:

  • 功能条件 - 失败
  • 组件条件 - 失败
  • 在安装结束时修改本地功能选择的注册表项 - 失败

如何防止功能/组件(链接到SQL脚本)在修复时运行?

由于

1 个答案:

答案 0 :(得分:1)

当InstallShield中的SQL脚本与组件(以及某个功能)相关联时,条件就在脚本本身上。看一下脚本的Runtime标签页,你会在底部看到“Script Condition”。它存储在Condition列的ISSQLScriptFile表中。

BTW,您可能需要考虑而不是尝试强制脚本在修复期间不运行,以使其在修复期间正常执行。换句话说,如果脚本的目的是创建表,如果表已经存在则不执行任何操作。这样,如果表不存在,则修复将起作用,并且将重新创建表。具体取决于相关脚本的性质。