2014-01-22 78 views
0

我們的安裝程序(讓我們說「X」)已經fllowing自定義操作,這將卸載一些其他產品(讓我們說Y)X的安裝完成維克斯 - 靜默安裝失敗時執行自定義操作

CustomAction後ID = 「RemoveProductY」 ExeCommand = 「MSIEXEC /寧靜/ X [PRODUCTCODEOFPRODY] 」目錄=「 TARGETDIR」 返回= 「asyncNoWait」 冒充= 「無」 執行= 「提交」

它完美地工作,當我安裝它通常但只有當我安靜地安裝它時纔會失敗。

作品:MSIEXEC/I X.msi

失敗:MSIEXEC /QN /我X.msi

請幫我這個

+0

您可以查看有關查看日誌的錯誤的更多詳細信息。 msiexec/l * v log.txt/quiet/x [PRODUCTCODEOFPRODY] – leshy84

+0

我試過了,但沒有生成日誌。這就是爲什麼我懷疑自定義操作本身被觸發 – user3222952

回答

0

還有一種更簡單的方法來卸載其他產品在安裝期間。

使用升級表,但您在那裏指定升級代碼而不是產品代碼。

E.g.

<Upgrade Id="{7F034BD8-2C57-437A-B528-F2554A095CF4}"> 
    <UpgradeVersion Property="X_PRODUCT_INSTALLED" Maximum="2.0.0" IncludeMaximum="yes" /> 
</Upgrade> 

與此升級代碼和版本< = 2.0.0該產品將安裝你的一個過程中被卸載。

+0

嗨,謝謝repsonse,但我不想升級自己的不同版本的產品。我試圖卸載的產品在一起是不同的。我知道這個產品Y的產品代碼,我必須卸載它。此外,我必須有條件地做到這一點。任何幫助? – user3222952

+0

不管它是否屬於你。您可以通過這種方式卸載很多其他產品。你可以使用Orca找到它的升級代碼,例如 – leshy84

+0

我完全同意你的意見。但在這裏背景是不同的。我必須有條件地卸載它,只有在它通過條件時才應該卸載它。這是我嘗試使用自定義操作實現它的原因。我不認爲我可以有條件升級任何東西。如果我錯了,請糾正我 – user3222952