2014-10-10 77 views
2

我創建了一個使用我創建的合併模塊的安裝程序(使用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

+0

我很想有這個答案。 – 2014-11-10 21:29:07

回答

0

我遇到了類似的情況。如果僅在Directory_Parent列中刪除INSTALLDIR值中的GUID,則面板將變爲不可用。您需要確保從Directory列的INSTALLDIR單元中刪除GUID。然後,合併模塊將「繼承」父安裝程序的INSTALLDIR,並且您在合併模塊中創建的目錄將從中繼承。

+0

我接受了這個答案,因爲它解決了我能夠在運行時設置合併模塊的安裝目錄而不會破壞Installshield中的UI的問題。對於我來說,對於您無法使用父安裝程序的Redistributables窗格中的「合併模塊」屬性中的「目標」字段,似乎仍然是一個錯誤。 – 2014-11-13 13:19:43

相關問題