Wix升级安装程序,不使用msiexec

时间:2013-04-03 02:42:20

标签: wix upgrade

我必须创建一个带升级部分的安装程序。我可以通过阅读本网站上关于该主题的许多帖子来开发它。但是,我发现正确运行升级安装程序的唯一方法是使用以下命令行:

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 个答案:

答案 0 :(得分:1)

两件事:

  1. 尝试使用WiX v3.5 +中提供的MajorUpgrade元素代替Upgrade元素。更容易纠正。
  2. 每次要启用主要升级时,都必须更改Product/@Id。一般情况下,我建议始终使用Product/@Id='*'进行主要升级。
  3. 这在MSI SDK中有记录:http://msdn.microsoft.com/en-us/library/windows/desktop/aa369786(v=vs.85).aspx