2012-03-15 216 views
1

我有一個插件應用程序A,使用Add-In express構建。它的安裝程序是在Visual Studio安裝項目中構建的。現在我已經將它包含在另一個全面的應用程序中,它的安裝程序是使用高級安裝程序構建的。如何在安裝過程中卸載應用程序(MSI)

我們希望能夠在安裝綜合應用程序B期間卸載A.根據Advanced Installer的用戶指南「我的應用程序卸載時如何卸載另一個MSI軟件包?」,我遵循指南,但它確實不適合我。

因此,我必須錯過某些設置或在我的AIP中設置不正確。我不知道如何附加aip文件。我該如何解決這個問題?

+0

您引用的文章提供了卸載主應用程序時卸載另一個基於MSI的應用程序的說明。該文章未涉及您正在嘗試執行的操作。 如果目標機器上已經安裝了加載項,那麼爲什麼在安裝主應用程序之前需要卸載它(除非主應用程序正在安裝不同的版本)? – 2012-03-15 15:22:34

+0

可以肯定的是,當您安裝應用程序B時,您想要卸載應用程序A,是嗎?因爲在你的問題中,你正在引用Advanced Installer用戶指南中的文章,其中介紹瞭如何在主應用程序的卸載期間卸載應用程序,在你的情況下是B. – 2012-03-15 15:24:39

+0

@Bogdan。是的,我想在安裝B時卸載A。我無法從用戶指南中找到完全相同的內容,所以我找到了我認爲可以量身定製的文章以適合我的情況。不幸的是我無法讓它工作。請讓我知道如何做到這一點。謝謝 – toosensitive 2012-03-15 15:47:26

回答

3

解決方案非常簡單。因爲A,我可以看到的是一個MSI軟件包,您可以直接進入高級安裝程序中的升級頁面(對於項目B),並使用「新建」按鈕將MSI添加到列表中。

這會將應用程序A的升級代碼添加到B軟件包的升級表中,因此操作系統會認爲B是A的升級版本,並且會自動將其刪除。

編輯

添加自定義操作來運行類似 在msiexec.exe/x {21D0F841-65A2-4A42-AA56-D7EF238968DE}/QN ,然後添加一個擴展搜索(通過的UpgradeCode搜索) ,使用搜索結果來控制自定義操作。查看更多詳細信息& chat

+1

其實我已經試過了。也不起作用。 :( – toosensitive 2012-03-15 16:03:58

+2

這是Microsoft提供的一種自動化支持,所以它應該可以工作。當這種情況跳過刪除的唯一情況是,如果兩個包的安裝類型不同,即每個用戶和每臺機器,或者包B的版本A小於A. – 2012-03-15 16:09:03

+0

另外,我假設在Advanced Installer的升級頁面中選擇了「自動刪除舊版本」選項,對於程序包B? – 2012-03-15 16:09:36

相關問題