You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WiX XML修改.config文件时忽略key属性,如何指定修改DatabaseName?

解决WiX修改.config文件中DatabaseName的问题

问题核心在于XPath表达式的写法不符合MSXML语法规范,导致无法准确定位到目标节点。以下是具体的解决方法:

正确的WiX配置修改

将util:XmlFile的ElementPath调整为属性选择器格式(用@标识属性),完整配置如下:

<Component Id="ModifyConfig" >
  <File Id="AppConfigFile" Source="..path\to\my.config" KeyPath="yes" />
  <util:XmlFile Id="SetAppSetting"
                File="[#AppConfigFile]"
                Action="setValue"
                ElementPath="/configuration/settings/add[@key='DatabaseName']"
                Name="value"
                Value="somethingElse" />
</Component>

原写法失效的原因

  • 你最初使用的key='DatabaseName'未添加@符号,MSXML无法识别这是属性筛选条件,会默认匹配第一个<add>节点,因此修改了DatabaseServer。
  • 若之前尝试过@key仍有问题,需检查XML节点层级是否完全匹配XPath路径(缩进不影响,但节点嵌套关系必须一致)。

额外注意事项

确保WiX项目已引用WixUtilExtension(util:XmlFile属于该扩展),需在Wix根节点中声明命名空间:

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
     xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">

内容的提问来源于stack exchange,提问作者Azzarrel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 17:12:11