【问题标题】:Wix - Upgrade will old installation and install new oneWix - 升级将旧安装并安装新安装
【发布时间】:2012-03-17 02:19:45
【问题描述】:

我希望我的安装程序在检测到旧的安装程序之前先将其卸载,然后再启动新安装程序的安装。

我有以下 Wix XML:

<Product Id="16bf910b-3b0f-4240-914a-81526bce35f4"
       Name="MyProduct"
       Language="1033"
       Version="1.0.0.0"
       Manufacturer="MyCompany"
       UpgradeCode="6ba28d97-41de-4371-a236-b757b7840f7b">
<Package InstallerVersion="200" Compressed="yes" />

<Upgrade Id="6ba28d97-41de-4371-a236-b757b7840f7b">
  <UpgradeVersion Minimum="0.0.0.0"
                  IncludeMinimum="yes"
                  OnlyDetect="no"
                  Maximum="1.0.0.0"
                  IncludeMaximum="yes"
                  Property="PREVIOUSFOUND" />
</Upgrade>
<InstallExecuteSequence>
  <RemoveExistingProducts After="InstallValidate"/>
</InstallExecuteSequence>

生成MSI文件时,安装(1.0.0.0版本),就OK了。 现在我将Product/@Version 更改为1.0.1.0 并再次单击MSI,此时我收到一条消息:“存在此产品的先前安装,请先将其删除...”。

如何修改此行为? 谢谢

【问题讨论】:

    标签: wix installation windows-installer


    【解决方案1】:

    Product@Id 映射到 Windows Installer ProductCode 属性。此 ID 必须在不同版本之间更改才能成为主要升级。您可以将其设置为“*”,让编译器为您处理。

    【讨论】:

    • 这样做会卸载以前的安装并正确安装,还是只是覆盖现有文件? (顺便说一句,它有效,谢谢)。
    • 这是一个复杂的问题,需要了解组件规则和默认文件版本规则。一般来说,是的,但 YMMV 基于这些规则。
    • 我将我的 Wix 版本更新为 3.5,现在使用 MajorUpgrade 标签,这是自动完成的。谢谢:)
    猜你喜欢
    • 2014-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-11
    相关资源
    最近更新 更多