我正在为64位应用程序创建一个安装程序,其中包含数千个第三方DLL(~2000)
根据InstallShield的最佳实践,每个DLL必须位于不同的组件中。
(来自doc) "每个组件应只包含一个可移植的可执行文件(.exe,.dll或.ocx文件)或WinHelp文件(.hlp文件)。"
所以我需要更多数千个组件才能更改" 64位组件"来自" No"到"是"。
在创建组件时,组件向导不允许我这样做。
问题:有没有办法对所有组件进行多选,以便能够一次更改所有组件的属性?或者我是否必须手动选择每个组件并更改属性?
注意:我知道如果1个组件被标记为64位,那么安装将是" 64位"察觉。
感谢。
答案 0 :(得分:1)
不支持多选组件和编辑它们。但是,至少有三种解决方法具有不同的易用性。
msidbComponentAttributesSharedDllRefCount
)替换一系列组件,其中一个组件还包含256(msidbComponentAttributes64bit
)。如果是这种情况,您可以将它们批量修改为264。请注意,在花时间将所有组件修改为64位之前,您应该确保需要这样做。如果这些组件仅将DLL安装到32位文件位置,并且不将注册表项安装到任何64位注册表位置(包括COM提取;如果您对这些文件使用COM提取,则它们可能 具有64位注册表项,因此需要为64位),不需要将它们标记为64位。
一旦确认需要更改它们,请注意,如果您之前使用该组件的32位变体发布了该软件包,则还需要为该组件创建新的GUID,作为以下内容的一部分组件规则。
请注意(如您所述)将任何组件标记为64位后,您需要将整个软件包标记为64位,并且它将不再安装在32位计算机上。