2012-03-14 71 views
3

如果我遗漏了任何重要细节,我想提前致歉。Wix'Advanced'安装不会卸载以前的版本

我正在尝试执行升级,在安装新软件之前应删除先前版本的软件(以及所有组件)。

我会尽量避免让你厌烦你的细节,并说如果你做'典型'安装,一切都按计划进行。如果您选择进行高级安装(为所有用户指定安装,安装位置等),那么它似乎完全跳过了“卸载先前版本”的步骤。

到目前为止,我已经做了以下内容:

-Edited我UpgradeVersion标签相匹配的-Verified的“OLDVERSIONBEINGUPGRADED”属性正确设定

另一计算器问题

意见 - 验证升级代码/ id是否相同,版本号是顺序的(从1.0.8升级到1.0.10) - 毕竟,“典型”安装正常工作!

-Followed这里给出的建议是:WiX-- always overwrite the previous version,并遵循这样的:http://wix.sourceforge.net/manual-wix3/major_upgrade.htm

-Tried通过手动调用MSIEXEC来卸载以前版本通过它的产品ID(这失败了,因为我们已经安装的东西来实现破解 - 有没有更好的方式来安排此)

我的产品/升级部分看起来是这样的:

<Product Id="GUID1" UpgradeCode="GUID2" Version="1.0.10.0"> 
    <Package Compressed="yes" InstallerVersion="200"/> 
    <MajorUpgrade Schedule="afterInstallInitialize" 
     DowngradeErrorMessage="Another version of [ProductName] is already installed."/> 
    <Upgrade Id="GUID2"> 
     <UpgradeVersion Minimum="1.0.10" OnlyDetect="yes" 
      Property="NEWERVERSIONDETECTED" /> 
     <UpgradeVersion Maximum="1.0.10" IncludeMaximum="no" 
      Property="PREVIOUSVERSIONINSTALLED" /> 
    </Upgrade> 

我是一个新手维克斯,所以我可能忽略了重要的d?同时描述我的问题。如果我忽略了一些重要的东西,请告诉我。

预先感谢您提供的任何输入。

回答

2

这听起来像您遇到了与我一样的限制,请参阅this question。您无法在升级中更改安装范围(“每个用户”或“每台机器”)。

在Windows安装程序中没有简单的解决方法。您只能创建一个单独的引导程序exe,它可以卸载以前的版本,然后开始安装新版本。

+0

感谢您的输入! 在测试中,我们发现如果每次都进行相同的“每台计算机”安装,我们会得到同样的问题。 这仍然是相同的限制? “每台计算机”的选择会阻止升级还是范围更改?您是否最终使用(或测试)该页面上建议的黑客? – user1267756 2012-03-14 15:28:42

+0

仅供参考 - 我们的解决方法是禁止进行高级安装;它总是按用户安装。如果我们有在其他环境中有用的功能或功能,我们将来可能需要在将来进行调整。 – user1267756 2012-03-14 17:54:25

+0

@ user1267756:这是我的情况的范围变化。如果即使示波器没有改变,您仍然看到问题,那么这可能是一个不同的问题。不,我从来没有测试过这个黑客。 – 2012-03-14 19:43:22

相关问题