MSI 无法使用 "A newer version of the product is already installed" 安装,但 ProductCode、ProductVersion、PackageCode 不同
MSI fails to install with "A newer version of the product is already installed" although , ProductCode, ProductVersion, PackageCode are different
我正在尝试安装产品更新(这样 MSI 将卸载旧版本并安装新版本)。新的 MSI 具有相同的升级代码,以及不同的 productCode、packageCode。产品版本号也比旧版本大。
尽管如此,得到 "Unable to install because a newer version of this product is already installed.".
旧的 MSI 数据:
升级代码 = {D627BB25-59CB-4387-AF42-0127AC701DBE}
产品代码 = {be94f6df-5503-444b-98ff-f4b04fe993d5}
PackageCode = {D69BDC04-1053-490D-BBDF-3A2ABC3E1585}
产品版本 = 3.9.2
操作 'RemoveExistingProducts' = 1550
新微星:
升级代码 = {D627BB25-59CB-4387-AF42-0127AC701DBE}
产品代码 = {ae91c3e3-0a19-4b19-8c54-38b57eb2eb2f}
PackageCode = {a2be00dc-102e-4a32-a4c8-9294a81b24ba}
产品版本 = 3.9.3
行动 'RemoveExistingProducts' = 1550
MSIEXEC 日志:
MSI_Log.txt
什么可能导致 MSI 中止安装?
感谢所有有用的评论。
第一个问题确实是我使用的小写 GUID。在解决这个问题后,安装程序仍然拒绝安装 ("A newer version ...")。
然后我们找到了一个非常好的工具,叫做 SupperOrca,它可以比较 2 个 MSI。
Diff 显示我的 MSI 中的升级操作 table 是完全错误的。 tables 的数据基本上都是乱七八糟的(我将解释我是如何生成 MSI 的)。它表示要采取的操作是 PREVIOUSVERSIONSINSTALLED 而不是 NEWERPRODUCTFOUND。
问题是由我们的 MSI 生成过程引起的:
1.我们使用VS2013的"VisualStudio Installer Projects"插件。在项目设置中,我们将 ProdutVersion = 1.0.0.
2. 生成 MSI 后,我们将结果传递给我们制作的工具,该工具将 MSI 中的版本更新为当前发布版本。
我们的错误是:
1.我们没有在installer plugin中标注"update previous version"
2. 我们没有更新 MSI 中的升级 table。
我希望这对尝试做同样事情的其他人有所帮助。如果其他人遇到类似问题,我很乐意提供更多信息。
我正在尝试安装产品更新(这样 MSI 将卸载旧版本并安装新版本)。新的 MSI 具有相同的升级代码,以及不同的 productCode、packageCode。产品版本号也比旧版本大。 尽管如此,得到 "Unable to install because a newer version of this product is already installed.".
旧的 MSI 数据:
升级代码 = {D627BB25-59CB-4387-AF42-0127AC701DBE}
产品代码 = {be94f6df-5503-444b-98ff-f4b04fe993d5}
PackageCode = {D69BDC04-1053-490D-BBDF-3A2ABC3E1585}
产品版本 = 3.9.2
操作 'RemoveExistingProducts' = 1550
新微星:
升级代码 = {D627BB25-59CB-4387-AF42-0127AC701DBE}
产品代码 = {ae91c3e3-0a19-4b19-8c54-38b57eb2eb2f}
PackageCode = {a2be00dc-102e-4a32-a4c8-9294a81b24ba}
产品版本 = 3.9.3
行动 'RemoveExistingProducts' = 1550
MSIEXEC 日志:
MSI_Log.txt
什么可能导致 MSI 中止安装?
感谢所有有用的评论。
第一个问题确实是我使用的小写 GUID。在解决这个问题后,安装程序仍然拒绝安装 ("A newer version ...")。
然后我们找到了一个非常好的工具,叫做 SupperOrca,它可以比较 2 个 MSI。
Diff 显示我的 MSI 中的升级操作 table 是完全错误的。 tables 的数据基本上都是乱七八糟的(我将解释我是如何生成 MSI 的)。它表示要采取的操作是 PREVIOUSVERSIONSINSTALLED 而不是 NEWERPRODUCTFOUND。
问题是由我们的 MSI 生成过程引起的:
1.我们使用VS2013的"VisualStudio Installer Projects"插件。在项目设置中,我们将 ProdutVersion = 1.0.0.
2. 生成 MSI 后,我们将结果传递给我们制作的工具,该工具将 MSI 中的版本更新为当前发布版本。
我们的错误是:
1.我们没有在installer plugin中标注"update previous version"
2. 我们没有更新 MSI 中的升级 table。
我希望这对尝试做同样事情的其他人有所帮助。如果其他人遇到类似问题,我很乐意提供更多信息。