2013-07-25 69 views
1

我有一个产品在网站上发布。每次用户下载这个文件时,我都会用WiX再次编译所有内容。在每个版本中,版本不会更改,但有些文件可以。删除以前在WiX上的安装

问题
如何强制安装程序来卸载软件,不管版本,它开始安装本身之前?

编辑
我已经尝试过这样的:

<MajorUpgrade DowngradeErrorMessage="Erro Message." /> 
+0

你有没有在原来安装的提到升级代码? – Isaiah4110

+0

@ isaiah4110我更新了帖子,看看。 –

回答

3

更改产品ID为*,这将确保一个独特的GUID是MSI编译过程中产生的。

然后添加以下内容:

<Property Id="OLDVersion" Secure="yes" /> 
<Upgrade Id="YOUR_GUID">  
    <UpgradeVersion 
      Minimum="1.0.0.0" Maximum="99.0.0.0" 
      Property="OLDVersion" 
      IncludeMinimum="yes" IncludeMaximum="no" /> 
</Upgrade> 

在InstallExecuteSequence补充:

<RemoveExistingProducts Before="InstallInitialize" /> 

这应该照顾卸载以前安装的版本。

请确保您使用的升级GUID在MSI的所有版本中都是通用的。

入住这LINK

+2

这工作正常,但旧版本属性必须是公开的,所以名称必须是大写,例如'OLDVERSION'。 –

+0

我需要删除MajorUpgrade标签吗? – ssal

+0

ok,MajorUpgrade标签需要删除。在那之后工作。但是这种设置迫使我们保持产品版本始终相同?因为如果我更改产品版本,它不会卸载以前的版本,而是会安装新版本。所以现在我可以看到安装了2个版本。产品版本no有助于确定在用户机器上安装哪个版本。 – ssal

相关问题