2014-01-22 43 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