2017-02-09 91 views
1

我有一個安裝程序,它包含一個32位和64位的DLL。在64位系統上,我想在32位系統上安裝這兩個版本,只是32位版本。Inno Setup:如何爲Select Destination Location頁面指定多個目錄?

[Files]部分如下:

[Files] 
Source: "C:\Users\..\x64\my.dll"; DestDir: "{pf64}\{#MyPath}"; Check: IsWin64 
Source: "C:\Users\..\my.dll"; DestDir: "{pf32}\{#MyPath}" 

這一切工作正常,但如果我重寫在「選擇目標位置」安裝目錄頁

  • 首先,它只是讓我們我覆蓋pf32路徑
  • 其次,沒有得到安裝,如果我重寫安裝目錄

有沒有辦法設置安裝程序,以便「選擇目標位置」獲取兩次,一次是32位位置,一次是64位?

回答

0

最簡單的方法是爲第二個目錄添加一個額外的頁面。

例子可見:


你當然也可以在第二個框添加到標準「選擇目標位置」頁面。但那是更多的工作。


更容易實現可能實際上是完全禁用「選擇目標位置」頁(通過設置DisableDirPageyes),並使用上述技術實現了新的類似的頁面。

在這種情況下,請確保將安裝目錄設置爲選定的自定義目錄之一,以便Inno安裝程序知道將卸載數據存儲在哪裏。否則,Inno安裝程序仍然會創建DefaultDirName設置的目錄(並將在那裏存儲卸載數據)。或者將CreateAppDir設置爲no。雖然這將使Inno安裝程序將卸載信息存儲到{win},但不好。

有關完整的解決方案,請參閱
Use two/multiple selected directories from custom page in Files section


至於第二個問題:問題是,你實際上是將文件安裝到固定位置時,「程序文件」,使用{pfXX}常數。要安裝到用戶在「選擇目標位置」頁面上選擇的位置,必須使用{app} constant

+0

謝謝,我結束了'DisableDirPage = yes'並按照第二個鏈接中所述滾動我自己的。 –

+0

確保將安裝目錄設置爲選定的自定義目錄之一,以便Inno安裝程序知道將卸載數據存儲在哪裏。否則,Inno Setup仍然會創建由'DefaultDirName'設置的目錄(並且將在那裏存儲卸載數據)。 –

+0

謝謝!我實際上已禁用卸載,並使用自定義註冊表鍵「記住」以前的安裝位置。卸載對於我的用例來說是過度的 –

相關問題