我有一个共享dll (COM对象),我们称之为Utility.dll,由多个产品安装。在我的WIX文件中,我将Utility.dll作为一个单独的组件安装。
现在,我发布了新版本2.0,并使用了相同的组件GUID和path。从理论上讲,他的成分应该算在内,然而,这并不是所发生的事:
磁盘上的Utility.dll是2.0
以前的安装程序是用InstallShield编写的,而当前的安装程序是用Wix3编写的。Utility.dll的组件GUID和路径是相同的(双重检查)。
发布于 2013-04-17 21:02:25
查看详细的日志文件以获得Component的GUID。您应该看到指示是否存在Component的其他客户端(产品)的消息。这将解释为什么卸载删除文件。
发布于 2014-10-29 15:21:13
我遇到了同样的问题,文件被卸载,因为KEYPATH在这两个组件之间是不同的。在我的情况下,我在安装程序的新版本中添加了一个配套文件,以确保安装了最新的文本文件。因为一个文件不能是KEYPATH并且有一个伴生文件,所以我被迫更改KEYPATH。
通过反向搜索组件GUID的前8个字符,可以在注册表中找到组件。该注册表文件夹将为每个安装了GUID的MSI设置一个键,数据字段将显示KEYPATH。我猜KEYPATH对于1.0版的机器和2.0版的机器是不同的。
https://stackoverflow.com/questions/16069908
复制相似问题