Wix未在UI中显示修复选项

时间:2014-03-21 20:35:33

标签: wix

我实施了升级处理程序和降级预防

<Upgrade Id="$(var.UpgradeCode)">
  <UpgradeVersion OnlyDetect="no" Minimum="$(var.MinimumUpgradeVersion)" Maximum="$(var.ProductVersion)" IncludeMinimum="yes" IncludeMaximum="no" Property="PREVIOUSVERSIONINSTALLED" MigrateFeatures="yes" />
  <UpgradeVersion OnlyDetect="yes" Minimum="$(var.ProductVersion)" IncludeMinimum="no" Property="NEWERVERSIONINSTALLED" />
</Upgrade>

进一步

<Custom Action="PreventDowngrading" After="FindRelatedProducts">NEWERVERSIONINSTALLED AND NOT Installed</Custom>
<RemoveExistingProducts After="InstallInitialize">PREVIOUSVERSIONINSTALLED</RemoveExistingProducts>

但是,现在当我尝试双击我的MSI进行修复时,UI不再出现了。我使用相同的升级代码,因此Wix应该自动允许我修复。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

要进行重大升级,最好使用majorupgrade元素来确保包含所需的所有内容。假设您需要进行重大升级,我无法分辨。

你误会了什么。当您拥有将替换旧版本的产品的新版本时,您(在WiX中)使用majorupgrade元素,其中包括新的ProductCode和相同的UpgradeCode。这与修复无关。当您尝试修改ProductCode定义的现有已安装产品而不是UpgradeCode时,修复是可用的选项之一。修复不是升级或任何类型的更新。它修复现有产品,并且需要与最初安装产品相同的MSI文件。相同的UpgradeCode与修复无关。

答案 1 :(得分:0)

您包含哪些GUI?请在此处查看在线教程:http://wix.tramontana.co.hu/tutorial/user-interface/ui-wizardry

您是否设置了ARPNOREPAIR property?在以下位置检查注册表(子项,检查DWORD NoRepair):

  • HKEY_LOCAL_MACHINE \ SOFTWARE \微软\的Windows \ CurrentVersion \卸载

enter image description here