visual tutorial toolset studio xml wix wix3

tutorial - Eliminando elementos XML en WiX



wix visual studio 2012 (2)

¿Cómo eliminar / eliminar un elemento de un archivo XML en WiX?


Dado un archivo .config con el siguiente contenido:

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

Para eliminar el elemento del elemento con el atributo de tipo establecido en ''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 elemento XmlConfig está definido por la extensión Wix "Utility". Para usar esa extensión, tiene que declarar el espacio de nombres de UtilExtension así:

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

También tiene que agregar -ext WixUtilExtension a las opciones del comando light.exe , o agregar una referencia a "WixUtilExtension.dll" si está creando un proyecto wix usando votive en Visual Studio.


Sé que esto es viejo, pero busqué por todos lados mi problema y nunca lo encontré hasta que finalmente encontré la respuesta. Así que quizás al publicar aquí alguien lo encontrará útil.

Además de la respuesta anterior, si usa V4.0, el enlace xmlns: util 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.