2013-04-03 83 views
1

我必须创建一个升级部分的安装程序。我可以通过阅读本网站中关于该主题的许多帖子来开发这些内容。然而,唯一的办法我已经找到了正确运行升级安装程序是通过以下命令行:Wix升级安装程序不使用msiexec

MSIEXEC/I MyInstaller.msi安装=所有重建都= vomus

如果我运行通过双击安装程序MSI文件,我得到一个错误: “此产品的另一个版本已安装...”

我需要通过双击MSI而不是使用命令行来运行安装程序。由于这个安装程序的用户非常不愿意以不同的方式执行安装程序,我强烈需要解决它。

我经历过的StackOverflow,在那里我发现如何实现升级的标签(但它从来没有通过双击工作)很多问题:

<Product Id="3ddf61a1-668f-421d-856f-4bb535a2ccc2" 
     Name="Product v1.7.5.21" 
     Language="1033" 
     Version="1.7.5.21" 
     Manufacturer="Company" 
     UpgradeCode="BC52FD13-7F1D-4D92-BB6E-D3FCB2727E9B"> 
<Package InstallerVersion="200" Compressed="yes"/> 

<Upgrade Id='15E2DAFB-35C5-4043-974B-0E342C25D76B'> 
    <UpgradeVersion Property='OLDVERSIONFOUND' IncludeMinimum='no' Minimum='0.0.0.0' /> 
</Upgrade> 

<InstallExecuteSequence> 
    <LaunchConditions After='AppSearch' /> 
    <RemoveExistingProducts After='InstallValidate' /> 
</InstallExecuteSequence> 

但是,无论我做什么我都跑通过命令行升级安装程序。否则,出现以下错误:

“此产品的其他版本已安装,此版本的安装无法继续。要配置或删除此产品的现有版本,请使用控制面板上的”添加/删除程序“。 “

我真的很感谢你能给我的任何帮助。

回答

1

两件事情:

  1. 尝试使用WiX的V3.5可用来代替Upgrade元素+的MajorUpgrade元素。更容易得到正确。
  2. 每次要启用主要升级时,您都必须更改Product/@Id。一般来说,我建议总是进行重大升级并使用Product/@Id='*'

这是记录在MSI SDK这里:http://msdn.microsoft.com/en-us/library/windows/desktop/aa369786(v=vs.85).aspx

+0

另外要注意的ProductVersion和ALLUSERS的含义。 –

相关问题