安装期间无法使用WiX更新App.config文件

时间:2016-12-08 02:07:27

标签: xml wix

我想在运行安装程序时更新app.config中UserType的值。知道我做错了吗?

的App.config

<configuration>
    <userSettings>
        <Tool.Properties.Settings>
            <setting name="UserType" serializeAs="String">
                <value>0</value>
            </setting>
        </Tool.Properties.Settings>
    </userSettings>
</configuration>

Tool.wxs

...
<util:XmlFile 
  Id="SetUserType"
  File="MyTool.exe.config"
  Action="setValue"
  Name="UserType"
  Value="1"
  ElementPath="//configuration/userSettings/Tool.Properties.Settings/setting"   />

2 个答案:

答案 0 :(得分:0)

为了修改value元素的内部文本,你应该稍微更改<XmlFile>声明:

<util:XmlFile Id="SetUserType"
              File="MyTool.exe.config"
              Action="setValue"
              Value="1"
              ElementPath="//configuration/userSettings/Tool.Properties.Settings/setting/value"   />

这里需要注意的事情:

  • ElementPath属性已更正为指向<value>元素
  • 如果省略Name属性。在这种情况下,它设置元素的内部文本,而不是设置某个属性值

希望这有帮助。

答案 1 :(得分:0)

在回答您对Yan answer的评论时,您需要使用ElementPath选择具有正确名称属性的设置。

<util:XmlFile Id="SetUserType" File="MyTool.exe.config" Action="setValue" Value="1"
ElementPath="/configuration/userSettings/Tool.Properties.Settings/setting[@name='UserType']/value"
/>

@name='UserType'更改为其他设置的名称。