Wix安装程序升级而不需要卸载

3

我目前使用wix构建一个安装程序,以下是一些要求,但我不知道该如何实现。

  • (相同版本的新版或旧版)用户可以直接点击安装程序来重新安装软件,而不需要先卸载它。

  • 在安装过程中有一些UI配置,并且结果已经写入到安装文件夹中的一个文件中。在重新安装软件时,我们能否从文件中加载这些参数?

    我已经尝试过以下方式:

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

    在wxs中,我还添加了与 相同的升级代码,在 <InstallExecuteSequence> 中添加了 <RemoveExistingProducts Before="InstallInitialize">

但我仍然收到“Wix another version of this product is already installed”错误信息。

请帮忙解决。

    <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个回答

4
我建议使用最新版本的WiX中提供的MajorUpgrade元素。它可以大大简化创建支持升级的安装程序的复杂性。您需要确保同时更改产品ID和版本号。如果不更改产品ID,您将始终收到错误提示(除非您在REINSTALLMODE中包含“v”运行安装,但这是一个小更新,限制了您的操作)。必须更改版本以确保您拥有单向升级路径,否则旧的安装程序可能会升级新的安装程序,如果它们具有相同的版本号。
这个教程有一个很好的演示。 how-to

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接