我们将UpgradeCode组件更改为其他GUID。是否可以在不重做安装的情况下更改已安装产品的UpgradeCode? p>
答案 0 :(得分:1)
实时? :产品还可以实时发布吗?如果不是,是否只需卸载所有实例并还原为原始升级代码? (特别是在公司环境中,可以通过分发系统对部署进行适当控制的情况下,则不需要为永久添加到程序包本身而构建任何结构。
修补程序 :有些人建议对缓存的安装数据库进行修补。我什至不会尝试。即使使用MSI API(Win32函数/ COM API来操纵MSI文件),我也觉得它很骇人。
升级表 :很久以来我都没有这样做,但是您应该可以将错误的升级代码编写到MSI文件的Upgrade Table中除了你的主要之一。换句话说,您可以通过编写Upgrade Table来检测多个相关产品(甚至不相关的产品),每个产品具有不同的升级代码。不过,在可预见的将来,您通常需要将该旧条目留在那儿,以确保在该特定产品系列相关的情况下平稳进行升级。您可以继续使用新的升级代码,也可以恢复为旧的升级代码(但是,在此产品系列更新之前,您需要在其中同时使用这两个条目-如果您使用的是所有版本)。
示例 :我正在按照上述内容进行操作:Adding entries to MSI UpgradeTable to remove related products