Wix升级安装程序,不使用msiexec
我必须创建一个带有升级部分的安装程序。我可以通过阅读这个网站上许多关于这个主题的帖子来发展这一点。但是,我发现正确运行升级安装程序的唯一方法是通过以下命令行: msiexec/i MyInstaller.msi重新安装=所有重新安装模式=vomus 如果双击MSI文件运行安装程序,则会出现错误: “已安装此产品的另一个版本…” 我需要通过双击MSI而不是使用命令行来运行安装程序。由于这个安装程序的用户非常不愿意以不同的方式执行安装程序,我强烈需要解决这个问题 我在StackOverflow中遇到了许多问题,在那里我找到了如何实现升级标记(但双击时它从未起作用):Wix升级安装程序,不使用msiexec,wix,upgrade,Wix,Upgrade,我必须创建一个带有升级部分的安装程序。我可以通过阅读这个网站上许多关于这个主题的帖子来发展这一点。但是,我发现正确运行升级安装程序的唯一方法是通过以下命令行: msiexec/i MyInstaller.msi重新安装=所有重新安装模式=vomus 如果双击MSI文件运行安装程序,则会出现错误: “已安装此产品的另一个版本…” 我需要通过双击MSI而不是使用命令行来运行安装程序。由于这个安装程序的用户非常不愿意以不同的方式执行安装程序,我强烈需要解决这个问题 我在StackOverflow中遇到
但是,无论我做什么,我都必须通过命令行运行升级安装程序。否则,我将得到以下错误:
已安装此产品的另一个版本。无法继续安装此版本。要配置或删除此产品的现有版本,请使用“控制面板”上的“添加/删除程序”
我非常感谢您能给我的任何帮助。两件事:
MajorUpgrade
元素,而不是Upgrade
元素。更容易得到正确的答案产品/@Id
。一般来说,我建议总是进行重大升级,并使用Product/@Id='*'
MajorUpgrade
元素,而不是Upgrade
元素。更容易得到正确的答案产品/@Id
。一般来说,我建议总是进行重大升级,并使用Product/@Id='*'
MSI SDK中记录了这一点:还要注意ProductVersion和ALLUSERS的含义。还要注意ProductVersion和ALLUSERS的含义。
<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>