2

我创建了一个安装程序(使用 InstallShield 2012 Spring),它使用我创建的合并模块,并且我想将主安装程序和合并模块中的文件安装到存储在注册表中的路径。在单独的安装程序中,用户可以指定安装位置,我将此路径保存在注册表中以供后续安装程序使用。

在合并模块中,我的组件的目标是“INSTALLDIR\Folder”。在主安装程序中,我已将 Redistributables 窗格中的 Destination 属性从“(用户合并模块的默认目标)”更改为“INSTALLDIR”。这允许我在构建安装程序时将合并模块的文件安装到主安装程序中的相同路径,但是如果我在运行时更改目标(通过自定义操作或 DestinationFolder 对话框),则仅安装主安装程序的文件到所需的路径。

我正在使用系统搜索从注册表中检索路径并将其存储在属性中。然后我有一个自定义操作,将 INSTALLDIR 设置为从注册表中读取的路径。

如果我转到合并模块的直接编辑器并编辑目录表,我可以将 INSTALLDIR.GUID 更改为 INSTALLDIR 并得到我想要的结果,但这会导致“组件”和“文件和文件夹”窗格无法使用。

有一个更好的方法吗?

我看到了这些答案,他们让我开始了,但我似乎无法让合并模块的目的地在运行时改变。

Installshield 12:在运行时更改合并模块的目标

为用户配置 installshield 合并模块安装路径

4

1 回答 1

0

我遇到了类似的情况。如果INSTALLDIR仅从列中的值中删除 GUID Directory_Parent,则 Files and Folders等面板将变得不可用。您还需要确保从列中的INSTALLDIR单元格中删除 GUID Directory。然后合并模块将“继承”INSTALLDIR父安装程序的,您在合并模块中创建的目录将从那里继承。

于 2014-11-12T03:03:16.237 回答