2010-01-15 14 views

Respuesta

20

Dado un archivo .config con el siguiente contenido:

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

Para quitar el elemento de elemento con el atributo type definido como 'valor' esto parece hacer el truco:

<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" 
/> 

Este El elemento XmlConfig está definido por la extensión Wix "Utility". Para utilizar esa extensión, tiene que declarar el espacio de nombres UtilExtension así:

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

También hay que añadir a los -ext WixUtilExtensionlight.exe opciones de comando, o añadir una referencia a "WixUtilExtension.dll" si va a crear una Wix proyecto usando votivo en el estudio visual.

+1

puntos ElementPath al padre de VerifyPath. Muy útil, gracias! –

+0

Usando WiX 3.6, también tuve que agregar '-ext WixUtilExtension' a la vela. – Chris

4

Sé que esto es viejo, pero busqué mi problema en todas partes y nunca pude encontrarlo hasta que finalmente tropecé con la respuesta. Entonces, al publicar aquí alguien lo encontrará útil.

Además de la respuesta anterior, si se utiliza V4.0 xmlns: util enlace debería tener este aspecto:

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

de lo contrario obtendrá el 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

Gracias por agregar la información para v4 –

Cuestiones relacionadas