我正在尝试安装产品的更新(以便MSI将卸载旧版本并安装新版本)。新的MSI具有相同的升级代码,以及不同的productCode,packageCode。 productVersion编号也比旧版本大。 但是,由于已经安装了此产品的较新版本,因此无法安装。"。
旧MSI数据:
UpgradeCode = {D627BB25-59CB-4387-AF42-0127AC701DBE}
ProductCode = {be94f6df-5503-444b-98ff-f4b04fe993d5}
PackageCode = {D69BDC04-1053-490D-BBDF-3A2ABC3E1585}
ProductVersion = 3.9.2
行动'删除现有产品' = 1550
新MSI:
UpgradeCode = {D627BB25-59CB-4387-AF42-0127AC701DBE}
ProductCode = {ae91c3e3-0a19-4b19-8c54-38b57eb2eb2f}
PackageCode = {a2be00dc-102e-4a32-a4c8-9294a81b24ba}
ProductVersion = 3.9.3
行动'删除现有产品' = 1550
MSIEXEC日志:
MSI_Log.txt
可能导致MSI中止安装的原因是什么?
答案 0 :(得分:3)
感谢所有有用的评论。 第一个问题确实是我使用的小写GUID。排序后,安装程序仍然拒绝安装(“更新的版本...”)。 然后我们找到了一个名为SupperOrca的非常好的工具,它可以实现2个MSI的差异 差异显示我的MSI中的升级操作表是完全错误的。表的数据基本上都搞砸了(我将解释如何生成MSI)。它说要采取的行动是PREVIOUSVERSIONSINSTALLED而不是NEWERPRODUCTFOUND。
问题是由我们的MSI生成过程引起的:
1.我们使用VS2013的“VisualStudio安装程序项目”插件。在项目设置中,我们将ProdutVersion = 1.0.0
2.生成MSI后,我们将结果传递给我们制作的工具,将MSI中的版本更新为当前版本。
我们的错误是:
1.我们没有在安装程序插件中标记“更新以前的版本”
2.我们没有更新MSI中的升级表。
我希望这可以帮助其他尝试做同样事情的人。如果其他人偶然发现类似问题,我很乐意提供更多信息。