是否可以覆盖由另一个msi安装的xap文件?

时间:2012-09-25 10:49:20

标签: installer installation windows-installer xap

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

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

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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