2013-04-29 103 views
2

我正在部署兩張CD,並且認爲兩者都會有一個setup.exe軟件包。當升級SKU時從ARP中刪除舊的軟件包

一張CD將被稱爲「標準SKU」,setup.exe將安裝a.msi和b.msi。

另一張CD將被稱爲「pro SKU」,setup.exe將安裝a.msi,b.msi和c.msi。

編寫setup.exe文件時適當的過程是什麼?具體而言,對於有人安裝標準SKU,然後將專業版SKU安裝在上面的情況,這會被認爲是一個相關的捆綁/升級?只需安裝兩個捆綁包並將兩個條目都保存在ARP中?還有別的嗎?

回答

1

我不會嘗試在這裏使用升級,但相關的軟件包絕對是開始的地方。在這種情況下,我會讓這兩個套件適當地共享一個RelatedBundle id和Tag。添加類似以下的「標準」捆綁:

<Bundle ... Tag='standard'> 

    <RelatedBundle Id='PUT-SAME-GUID-HERE' Action='Detect' /> 

執行相同的「親」包,但它Tag適當。

現在,在您的自定義引導程序應用程序中,在OnDetectRelatedBundle()上,如果已安裝其中一個Bundle,則會收到回調。該回調還將發送Tag,以便您知道哪個Bundle存在。你可以顯示結果給用戶或任何你喜歡的。真正重要的部分是,在OnPlanRelatedBundle()回撥期間,您需要返回相應的RequestState來說明是刪除還是離開找到的捆綁包。

祝你好運,所有的數據都在那裏,只是獲得正確的回調問題。