WiX升级MSI时日志显示组件应安装但对应文件未部署问题求助
WiX升级MSI时组件标记安装但NLog.config未落地的解决方案
- 检查同名文件的覆盖规则:如果目标路径下已存在NLog.config,且该文件的修改时间晚于MSI包内携带的文件版本,Windows Installer默认会跳过写入操作,避免覆盖用户更新过的文件。解决方法是在该组件的WiX配置中添加
NeverOverwrite="no"属性,若该配置文件无需保留用户修改,可额外添加ReplaceExistingFiles="yes"强制覆盖。 - 校验组件的目标路径配置:确认harvesting生成的组件的
Directory属性指向的目录变量是否正确,变量有没有拼写错误、对应目录是否在MSI的Directory表中完成注册。你可以在MSI日志中搜索该文件对应的路径计算记录,确认最终目标路径是否符合预期。 - 排查后续自定义动作的影响:如果存在自定义动作在
InstallFiles执行阶段之后运行,且逻辑包含配置文件清理操作,会导致文件刚被写入就被删除。你可以在日志中定位InstallFiles阶段的执行记录,确认NLog.config的写入操作是否在该阶段正常完成,再逐一排查后续自定义动作的执行日志。 - 确认组件与特性的关联关系:检查修改后的组件是否正确关联到了启用安装的Feature下,如果组件没有被任何待安装的Feature引用,哪怕组件本身的安装动作为Local,也不会实际执行文件写入。
对应MSI日志参考:
MSI (s) (00:14) [21:23:39:980]: Component: NLog.config; Installed: Absent; Request: Local; Action: Local
内容的提问来源于stack exchange,提问作者diwakar anjan
相关产品推荐
相关产品推荐

