【问题标题】:Installshield Installscript propertiesInstallshield 安装脚本属性
【发布时间】:2015-11-09 21:56:23
【问题描述】:

我们的产品有 Installshield 2009。我试图通过它来进行一些更新(显然,我不是原作者)。

在其中,组件和文件的排列相当复杂,此外,还有一个用于一些自定义工作的脚本部分。

我需要完成以下操作,而不是在存储库中创建空白对象。

  1. 其中一个组件需要创建一个目录树(两个文件夹深)。

  2. 在那棵树(最深的文件夹)中,我需要创建一个空白文件。

问题:

  1. 我是否需要创建两个组件,每个目录级别一个,或者如果我指定 [INSTALLDIR]folder1\folder2 是否会创建树?

  2. 根据帮助中的 CreateFile 示例,我认为 installscript 将是创建空文件的地方。我注意到,在组件页面中,一旦我键入 Destination 属性的值,就会在开始 {FOLDER2} 处出现一个小的“标签”。我可以将该标签用作 CreateFile 的参数吗?我将如何引用它?

【问题讨论】:

    标签: installshield installscript


    【解决方案1】:

    无论项目类型如何,我都可能建议在“文件和文件夹”视图中创建文件夹结构,并在其中添加空文件。这很简单,而且出错的机会更少。

    关于您提出的问题,基本 MSI 和 InstallScript 项目都不需要系统上每个文件夹级别的组件。请注意,如果文件夹在执行时不存在,CreateFile 方法不太可能为您创建文件夹。

    在 Basic MSI 项目中,{FOLDER2} 表示FOLDER2 是目录条目的名称,并且在 CostFinalize 之后会有一个包含其运行时位置的同名属性。您可以使用 MsiGetProperty 在 InstallScript 自定义操作中检索它。在纯 InstallScript 项目中,方法会有些不同,最坏的情况是 TARGETDIR ^ "folder1" ^ "folder2"(我的 InstallScript 生锈了)。

    【讨论】:

    • 所以,当我去创建文件时,似乎没有创建文件夹。我调整了脚本以检查文件夹并在不存在时创建它,但是,文件和文件夹中的文件夹结构是在什么阶段创建的?
    • 假设 MSI,在 InstallFiles 执行后(延迟的一半)。
    • 不确定“延迟的一半”是什么意思,但是,我发现执行自定义操作时尚未创建文件夹结构(我的自定义操作的序列号高于安装文件) .也许它被缓存了?同样,结构是空的,只是文件夹,也许这也与它有关?
    猜你喜欢
    • 2014-04-19
    • 2014-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多