-1

假设我们有 msi x.msi 并且它正在安装一个 xap 文件。

我们想通过另一个 msi 覆盖 xap 文件(例如使用 y.msi)。

是否可以通过另一个 msi 覆盖?它会不会有任何问题,因为它没有任何相关的版本号?

如果有可能,如果我们卸载 x.msi 会发生什么?

是否建议覆盖另一个 msi 安装的文件?

4

1 回答 1

2

XAP 文件尽管是应用程序二进制文件,但没有版本资源,因此 Windows Installer 无法正确对其进行版本控制。结果,您可能会进入 DLL 地狱,因为将安装最后一个包。

为了缓解这种情况,请考虑使用一个版本构建一个无意义的 DLL,并将其用作组件的密钥文件。这样 MSI 将根据 DLL 版本评估安装。这应该可以防止 XAP 的版本冲突。

确保两个 MSI 具有相同的组件 ID,并且该组件被标记为共享。这将适应正确的引用,以便最后一次卸载将删除该组件。

于 2012-09-26T01:33:31.510 回答