我有一个包含以下代码段的wxs文件:
<Upgrade Id="{FE576A6C-AF60-4569-B81D-1B025F88F9D7}">
<UpgradeVersion Property="LCGUID" OnlyDetect="yes"
Minimum="0.0.0" IncludeMinimum="yes"
Maximum="9.0.0" IncludeMaximum="no" />
</Upgrade>
这将查找另一套已安装的软件(名为LC),并将升级版本guid设置为属性LCGUID。以后用于验证是否安装了正确的LC。
当“安装”或“升级”软件时,此方法有效。我可以在日志中看到这一点:
MSI (c) (9C:A8) [02:28:48:422]: PROPERTY CHANGE: Adding LCGUID property. Its value is '{8023DC00-D425-4DE8-808C-C78FAD649A2F}'.
现在,当我尝试进行修复时,我也需要填充此属性,但是日志中没有任何关于LCGUID的内容。
我怀疑修复时未执行“升级”元素。有人可以验证这一点并提供可能的解决方案吗?
如果您在日志中查看,应该会看到类似“跳过FindRelatedProducts操作:不在维护模式下运行”的内容,这就是UpgradeCode搜索的内容,因此您正确地说,它不在维护/修复模式下运行。
首次安装完成升级搜索后,您可以将该属性保存在注册表中,并使用WiX“记住属性”模式。这确实意味着您需要两个单独的搜索,而在全新安装过程中则需要一个,而在维护模式下则需要一个。通常,您将使用另一个属性进行注册表搜索,然后设置一个自定义操作属性,该属性仅将LCGUID设置为REGISTRYGUID(以已安装为条件)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句