【发布时间】:2011-08-11 11:29:14
【问题描述】:
我正在按照教程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] 在每次安装时都会改变。谢谢。
【问题讨论】:
标签: wix upgrade uninstallation