1

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

msiexec /i MyInstaller.msi REINSTALL=ALL REINSTALLMODE=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>

但是,无论我做什么,我都必须通过命令行运行升级安装程序。否则,我会收到以下错误:

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

我将非常感谢您能给我的任何帮助。

4

1 回答 1

1

两件事情:

  1. 尝试使用MajorUpgradeWiX v3.5+ 中可用的元素而不是Upgrade元素。更容易得到正确。
  2. Product/@Id每次要启用主要升级时都必须更改。一般来说,我建议始终进行重大升级并使用Product/@Id='*'.

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

于 2013-04-03T05:43:08.463 回答