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.