Wix Installer无需卸载即可升级

时间:2014-01-13 04:54:13

标签: wix upgrade

我目前正在使用wix构建安装程序,这里有一些要求,我不知道该怎么做。

  • (相同版本或新版本的安装程序,但版本相同)用户可以单击安装程序重新安装软件,而无需先卸载它。

  • 安装时,UI流程中有一些配置,结果已写入安装文件夹中的文件,我们可以在重新安装软件时从文件中加载这些参数吗?

    我试过了

    • 相同的产品ID;
    • 将产品版本从“1.0.0”修改为“1.0.1”

    在wxs中,我添加了相同的升级代码,添加了RemoveExistingProducts Before =“InstallInitialize”

在安装顺序中,但我仍然得到“wix已经安装了此产品的另一个版本”错误。

请帮忙。

    <Product  Id='fixed-ID' 
              UpgradeCode='fixed-upgrade-ID' 
              Version='1.1.1' > 
        <Package InstallerVersion='300'/>

            <Property Id="PREVIOUSVERSIONSINSTALLED" Secure="yes" />

            <Upgrade Id="fixed-upgrade-ID">
                <UpgradeVersion Property="PREVIOUSVERSIONSINSTALLED" 
                  Minimum="0.0.0" 
                  Maximum="1.1.1" 
                  IncludeMaximum="no" 
                  IncludeMinimum="yes"
                  OnlyDetect="no" 
                  />
            </Upgrade>

        <InstallExecuteSequence>

          <RemoveExistingProducts Before="InstallInitialize" />
       </InstallExecuteSequence>
    </Product>

1 个答案:

答案 0 :(得分:2)

我建议使用最新版本的WiX中的MajorUpgrade元素。创建支持升级的安装程序需要很多复杂性。您需要确保更改产品ID和版本。如果不更改产品ID,则总是会出错(除非您使用包含'v'的REINSTALLMODE运行安装,但这是次要升级并限制您可以执行的操作)。必须更改版本以确保您具有单向升级路径,否则旧安装程序可以升级更新的版本,如果它们具有相同的版本。

这个how-to有很好的演练。