当产品ID为*时,在WiX中卸载快捷方式以允许重大升级?

时间:2011-04-23 12:54:18

标签: wix upgrade uninstall

我正在按照教程here在开始菜单中实现卸载快捷方式。

简而言之,创建卸载条目的方法如下:

 <Shortcut Id="UninstallProduct"             
           Name="Uninstall My Application"
           Target="[SystemFolder]msiexec.exe"
           Arguments="/x [ProductCode]"
           Description="Uninstalls My Application" />

根据Rob Mensching的建议here,如果应用程序足够小并且您不需要处理小更新和次要升级(我没有),您可以强制每个更新都是主要的升级。这显示为here。我用Rob的建议是这样的:

<Product Id="*" UpgradeCode="PUT-GUID-HERE" Version="$(var.ProductVersion)">
 <Upgrade Id="PUT-GUID-HERE">
    <UpgradeVersion OnlyDetect="yes" Minimum="$(var.ProductVersion)" Property="NEWERVERSIONDETECTED" IncludeMinimum="no" />
    <UpgradeVersion OnlyDetect="no" Maximum="$(var.ProductVersion)" Property="OLDERVERSIONBEINGUPGRADED" IncludeMaximum="no" />
</Upgrade>

<InstallExecuteSequence>
    <RemoveExistingProducts After="InstallInitialize" />
</InstallExecuteSequence>

现在我的问题是,如果产品ID是随机的(*)以允许进行重大升级,是否有其他方法可以将卸载快捷方式添加到开始菜单,还是必须通过添加/删除程序来实现?我更喜欢在开始菜单中创建快捷方式,因为它对用户来说更容易。显然它现在的方式,它将无法工作,因为msiexec参数中使用的[ProductCode]将在每次安装时更改。感谢。

1 个答案:

答案 0 :(得分:4)

你是说你尝试过它并不起作用?它怎么会失败?什么是捷径论证?使用Product / @ Id =“*”设置ProductCode属性,因此它应该可以正常工作。