2009-07-21 27 views
1

我正在部署一個包,用於設置SQL Server 2008實例和IIS虛擬目錄。這是有道理的,用戶可能想要在同一個系統上安裝該程序的多個實例。如何使用Inno Setup在一個系統上安裝多個「站點」,並僅卸載特定的一個?

我知道我可以在卸載中使用GetPreviousData()來獲取上次安裝的實例,並卸載該實例。但是,似乎其餘的安裝會丟失。

例如,說一個用戶指定的實例名稱「Site1,Site2,Site3」,然後卸載。 Sites1和Site2可能會成爲孤兒,並且Site3將被正確卸載。

有無論如何可以補充嗎?例如,我可以詢問用戶在卸載過程中卸載什麼網站,或者我將不得不將這個系統分爲兩個階段?

回答

1

基本上有安裝你的包有兩種方式:

  • 有不同的名稱和AppId每個安裝。
  • 所有安裝共享相同的名稱和AppId

在第一種情況下,用戶爲Software Applet中的每個實例獲取一個圖標,以便它們都可以單獨卸載。在這種情況下,所有常用組件都必須保留,直到最後一個實例被刪除,使用sharedfile標誌將有助於此。

在第二種情況下,管理實例與安裝或卸載整個軟件包不同。因此,我可能會簡單地創建一個工具來管理包的實例,並在安裝和卸載期間執行此操作。使用Pascal腳本可以執行外部應用程序,並根據執行的程序的結果代碼跳過進一步的安裝或卸載步驟。

實際上,除了第一次安裝和最後一次卸載以外,所有工作都將完全由此工具完成。

管理工具甚至可以在程序組中擁有自己的圖標,以便可以在不使用軟件控制小程序的情況下添加,修改或刪除實例。

+0

這基本上是我的想法。我無法生成多個安裝程序,因爲用戶選擇的站點名稱可以是他們想要的任何內容,並且在安裝時選擇。沒有建立時間。我曾想避免每個實例的配置工具,但這可能是不可能的。 – Christopher 2009-07-21 18:27:04

相關問題