2014-08-28 46 views

回答

1

InstallShield不提供直接執行此操作的方法。該對話框在啓動MSI之前由setup.exe顯示,因爲一旦Windows Installer被調用,它就被鎖定到特定的實例中。根據您要顯示的消息框,您可以將其作爲MSI的一部分,並在正確的情況下儘早顯示。然而,這是不正確的。

最簡單的方法是引用InstanceId屬性,因爲這表示您在哪個實例上。但是,在安裝和卸載幾個實例之後,下一個安裝的可能不會反映系統當前的編號。

爲了完全正確,您需要對其他實例具有與setup.exe相似的知識:它使用其產品代碼(以及更多)維護實例列表,以便檢測它們是否已安裝。如果您的MSI具有此信息,它也可以檢測到其他MSI(可能通過主要升級條目設置爲僅檢測,引用其他實例的各個UpgradeCode值)。

在任何一種情況下,一旦您確定了您的近似或確切計數,就可以製作您的消息,並將其顯示在對話框中(例如,將其放置在標籤中顯示的屬性中),或顯示它致電MsiProcessMessage

+0

是的,我只是想讓這個消息框提醒用戶已經安裝了6個實例。用戶點擊此消息框中的「確定」後,安裝將繼續......我應該提供哪些細節? – zangw 2014-08-29 02:14:06

+0

@zangw,這些都是正確的細節,但在MSI方面這不是微不足道的。我已經更新了我的答案,以包含更多方向。 – 2014-08-29 12:27:12

相關問題