我必须创建一个带升级部分的安装程序。我可以通过阅读本网站上关于该主题的许多帖子来开发它。但是,我发现正确运行升级安装程序的唯一方法是使用以下命令行:
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>
但是,无论我做什么,我都必须通过命令行运行升级安装程序。否则,我收到以下错误:
“已安装此产品的另一个版本。此版本的安装无法继续。要配置或删除此产品的现有版本,请使用”控制面板“上的”添加/删除程序“。
我真的很感激你能给我的任何帮助。
答案 0 :(得分:1)
两件事:
MajorUpgrade
元素代替Upgrade
元素。更容易纠正。Product/@Id
。一般情况下,我建议始终使用Product/@Id='*'
进行主要升级。这在MSI SDK中有记录:http://msdn.microsoft.com/en-us/library/windows/desktop/aa369786(v=vs.85).aspx