Hi Tim,

Please see (much further) below an implementation I use.
It will turn this:
<Configuration>
        <Extensions>
                <Data>
                </Data>
        </Extensions>
</Configuration>

Into:
<Configuration>
        <Extensions>
                <Data>
                        <Extension Name="ExtName"  Type=" SomeValue "/>
                </Data>
        </Extensions>
</Configuration>

And on uninstall will remove the bits it has created.
Most of the time I do MajorUpgrades, so I control the content in the original 
config file, which means I can get away with a simple XMLFile command to set 
the value.
I only use XMLConfig when I'm poking around in files that aren't actually mine 
as I need to be able to back out my changes on uninstall and XMLFile isn't too 
good at this.
Anyway, on to the code (names have been changed to protect identities):

  <Fragment>
    <DirectoryRef Id="INSTALLLOCATION">
      <Component Id="DataExtension" 
Guid="{93217AB4-B61E-4EF0-BC07-ABFBEE569466}" Win64="yes">
        <util:XmlConfig Id="DataExtension"
                        On="install"
                        Action="create"
                        Sequence="1"
                        File="[INSTALLLOCATION] server.config"
                        ElementPath ="//Configuration/Extensions/Data"
                        VerifyPath 
="//Configuration/Extensions/Data/Extension[\[]@Name= ExtName [\]]"
                        Node="element"
                        Name="Extension"
                        />
        <CreateFolder/>
      </Component>
      <Component Id="DataExtensionName" 
Guid="{64DE6042-74C9-4F04-9BBD-C40E9D5742E6}" Win64="yes">
        <util:XmlConfig Id="DataExtensionName"
                        Sequence="2"
                        File="[INSTALLLOCATION] server.config"
                        ElementId ="DataExtension"
                        VerifyPath 
="//Configuration/Extensions/Data/Extension[\[]@Name= ExtName [\]]"
                        Name="Name"
                        Value=" ExtName"
                        />
        <CreateFolder/>
      </Component>
      <Component Id="DataExtensionType" 
Guid="{250572F0-1F0A-4FED-B56C-D6654EFBA193}" Win64="yes">
        <util:XmlConfig Id="DataExtensionType"
                        Sequence="3"
                        File="[INSTALLLOCATION]server.config"
                        ElementId ="DataExtension"
                        VerifyPath 
="//Configuration/Extensions/Data/Extension[\[]@Name= ExtName [\]]"
                        Name="Type"
                        Value="SomeValue"
                        />
        <CreateFolder/>
      </Component> 
      
      <!--Uninstall-->
      <Component Id="DataExtensionUninstall" 
Guid="{DB19543E-F691-4452-B0B5-04F6D1F43BF2}" Win64="yes">
      <util:XmlConfig
                    Id="DataExtensionUninstall"
                    File="[INSTALLLOCATION] server.config"
                    Action="delete"
                    Node="element"
                    VerifyPath="Extension[\[]@Name= ExtName [\]]"
                    ElementPath="//Configuration/Extensions/Data"
                    On="uninstall"
                    Sequence="1" />
        <CreateFolder/>
      </Component>
    </DirectoryRef>
  </Fragment>

Before you implement this, please understand what it does and (most 
importantly) what you are trying to achieve.

James 



------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.
Get unparalleled scalability from the best Selenium testing platform available
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to