我創建了一個使用我創建的合併模塊的安裝程序(使用InstallShield 2012 Spring),並且我想將主安裝程序和合並模塊中的文件安裝到存儲在註冊表中的路徑中。在單獨的安裝程序中,用戶可以指定安裝位置,並將此路徑保存在註冊表中以供後續安裝程序使用。如何從註冊表項設置合併模塊的安裝路徑?
在合併模塊中,我的組件具有'INSTALLDIR \ Folder'的定義。在主安裝程序中,我已將Redistributables窗格中的Destination屬性從'(用戶合併模塊的默認目標)'更改爲'INSTALLDIR'。這使我可以在構建安裝程序時將合併模塊的文件安裝到主安裝程序中的相同路徑中,但如果在運行時更改目標(通過自定義操作或DestinationFolder對話框),則只安裝主安裝程序的文件到所需的路徑。
我正在使用系統搜索從註冊表中檢索路徑並將其存儲在屬性中。然後我有一個自定義操作將INSTALLDIR設置爲從註冊表中讀取的路徑。
如果我轉到合併模塊的直接編輯器並編輯目錄表,我可以將INSTALLDIR.GUID更改爲INSTALLDIR,然後得到我想要的結果,但這會導致「組件」和「文件和文件夾」窗格成爲無法使用。
有沒有更好的方法來做到這一點?
我看到了這些答案,他們讓我開始了,但我似乎無法讓運行時合併模塊的目的地發生變化。
Installshield 12: Changing the destination of a merge module at run time
Make installshield merge module installation path configurable for user
我很想有這個答案。 – 2014-11-10 21:29:07