Deleting XML elements in WiX

前端 未结 2 1378
我寻月下人不归
我寻月下人不归 2020-12-16 13:02

How do you delete/remove an element from an XML file in WiX?

相关标签:
2条回答
  • 2020-12-16 13:13

    I know this is old, but I searched everywhere for my issue and never could find it until I finally stumbled upon the answer. So maybe by posting here someone will find it useful.

    In addition to the above answer, if using V4.0 the xmlns:util link should look like this:

    <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" 
    xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util" >
    

    Otherwise you will get the error:

    The Component element contains an unhandled extension element 'util:Blah'. Please ensure that the extension for elements in the 'http:⁄⁄schemas.microsoft.com⁄wix⁄UtilExtension' namespace has been provided.

    0 讨论(0)
  • 2020-12-16 13:24

    Given a .config file with the following content:

    <configuration>
     <thingy>
      <stuff>
       <item type='value' />
       <item type='value2' />
      </stuff>
     </thingy>
    </configuration>
    

    To remove the item element with the type attribute set to 'value' this seems to do the trick:

    <util:XmlConfig
      On="install"
      Action="delete"
      Id="RemoveAnElement"
      Node="element"
      File="Application.dll.config"
      VerifyPath="/configuration/thingy/stuff/item[\[]@type='value'[\]]"
      ElementPath="/configuration/thingy/stuff"
      Sequence="100"
    />
    

    This XmlConfig element is defined by the Wix "Utility" extension. To use that extension, you have to declare the UtilExtension namespace like this:

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

    You also have to add -ext WixUtilExtension to the light.exe command options, or add a reference to "WixUtilExtension.dll" if you are authoring a wix project using votive in visual studio.

    0 讨论(0)
提交回复
热议问题