2011-09-06 99 views
2

我有一个MSI包,它在第一次安装时会将SQL脚本安装到SQL Server上。这可以很好地使用Installshield中的SQL脚本功能。Installshield 2009,防止在MSI修复期间重新安装功能

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

我已经尝试了很多事情要做到这一点:

  • 条件的功能 - 无法
  • 条件对组件 - 无法
  • 修改在年底的局部特征选择的注册表项安装 - 失败

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

由于

回答

1

尽管SQL脚本InstallShield中被关联到一个部件(因此一个特性)的条件是在脚本本身。看一下脚本的运行时标签页,你会看到底部的“脚本条件”。这存储在Condition列的ISSQLScriptFile表中。

顺便说一句,您可能需要考虑,而不是试图强制脚本在修复过程中不运行,以便在修复过程中优雅地执行脚本。换句话说,如果脚本的目的是创建一个表格,如果该表格已经存在,请不要做任何事情。通过这种方式,如果表格不存在,修复将工作,表格将被重新创建。具体情况取决于相关脚本的性质。

相关问题