我们的产品有Installshield 2009。我试图通过它来进行一些更新(显然,我不是原作者)。
在内部,有一个相当复杂的组件和文件排列,另外,还有一个脚本部分用于一些自定义工作。
我需要完成以下操作,而不在存储库中创建空白对象。
其中一个组件需要创建一个目录树(两个文件夹深)。
在该树(最深的文件夹)中,我需要创建一个空白文件。
问题:
我是否需要创建两个组件,每个目录级别一个,或者如果我指定[INSTALLDIR] folder1 \ folder2,是否会创建树?
我认为installscript将是创建空文件的地方,基于帮助中的CreateFile示例。我注意到,在组件页面中,一旦我输入了Destination属性的值,就会在开始{FOLDER2}处出现一些“标签”。我可以使用该标记作为CreateFile的参数吗?我将如何引用它?
答案 0 :(得分:1)
无论项目类型如何,我都建议在“文件和文件夹”视图中创建文件夹结构,并在那里添加空文件。这很简单,你就可以减少出错的几率。
对于您提出的问题,基本MSI和InstallScript项目都不需要系统上每个文件夹级别的组件。请注意,如果文件夹在执行时尚未存在,则CreateFile
方法不太可能为您创建文件夹。
在基本MSI项目中,{FOLDER2}
表示FOLDER2
是目录条目的名称,在CostFinalize之后将有一个包含其运行时位置的同名属性。您可以使用MsiGetProperty
在InstallScript自定义操作中检索它。在纯粹的InstallScript项目中,方法会有所不同,最糟糕的情况是TARGETDIR ^ "folder1" ^ "folder2"
(我的InstallScript生锈)。