首先要做的事情:您确定您没有在两个 MSI 文件中或在部署工作和测试期间的某个时间点重新使用包 GUID ?
尝试使用新的 GUID 重新构建两个 MSI 文件,以将它们与任何现有的缓存版本“分离”,然后再次尝试测试安装。更改包装代码和产品代码。更好的是:在干净的虚拟机上测试这些新版本,以确保正确的测试环境不受过去的罪恶影响。由于包 guid 冲突,您的开发人员系统的 Windows 安装程序数据库中可能有 gremlins。如果是这种情况,包安装就变成了全部 XFiles - 可能会发生最奇怪的事情。
更多详细信息:如果两个 MSI 文件的包 GUID 相同,则 Windows Installer 将根据定义将它们视为相同的文件 - 无论它们包含什么。这可能会导致各种难以清理和调试的奇怪问题。请注意,即使您只是忘记更新一次,也可能会发生这种情况,因为安装 MSI 会导致它缓存在系统上的 C:\Windows\Installer 文件夹中(该文件夹被隐藏并受保护)。如果启动具有相同 GUID 的 MSI 文件,将重新使用此缓存副本(至少早期版本的 Windows Installer 是这种情况 - 现在可能会对此进行修复)。
如果您使用的是 Installshield,您应该启用“始终生成打包 GUID”功能以确保永远不会发生这种情况。包 GUID 应始终针对每个构建进行更改 - 没有任何理由对其进行硬编码。我相信 WIX 会自动生成包 GUID,除非您专门覆盖它。