维克斯的XMLConfig:元素上卸载不删除(WiX XmlConfig: Elements not

2019-10-17 12:21发布

我有困难,消除对卸载,我添加到上安装一个XML文件中的元素。 这里是我的设置:XML文件已经存在之前安装在机器上,不能被删除后安装,因为此安装程序是一个“附加”到应用程序。 我不添加一些元素上安装的XML文件,而只是想删除一些在卸载这些元素。

我一直在网上寻找答案,找不到任何适合我的情况。 我试图复制这个帖子的语法: 删除在维克斯XML元素 ,但它仍然是行不通的。 然而,在安装我删除现有的元件,以便做了更换安装,如果已经存在的元素。 因此,换句话说,删除元素上安装工作,但具有完全相同的标签(除了Id当然attr)使用它不卸载工作。

这里是我的代码:

<Component Id="C_Component" Guid="GUID-HERE">
    <File Id="MainProductFile" ... />
    <!-- XmlConfigs for installation are here -->
    <util:XmlConfig Id="XMLDEL_binding"
              File="[FILE_DIR_PATH]\File.config"
              Sequence="1"
              On="uninstall"
              Action="delete"
              ElementPath="/configuration/system.serviceModel/bindings/customBinding"
              VerifyPath="/configuration/system.serviceModel/bindings/customBinding/binding[\[]@name='!(wix.binding.name)'[\]]"
              Node="element" />
    <util:XmlConfig Id="XMLDEL_endpoint"
              File="[FILE_DIR_PATH]\File.config"
              Sequence="2"
              On="uninstall"
              Action="delete"
              ElementPath="/configuration/system.serviceModel/client"
              VerifyPath="/configuration/system.serviceModel/client/endpoint[\[]@name='!(wix.endpoint.name)' and @bindingConfiguration='!(wix.endpoint.bindingConfiguration)'[\]]"
              Node="element" />
</Component>

Answer 1:

我终于想通了这个问题。 我意识到, [FILE_DIR_PATH]对卸载没有价值。 是由获得该属性RegistrySearch 。 因此,所有我必须做修复它是对财产申报为Secure

<Property Id="FILE_DIR_PATH" Secure="yes">
    <RegistrySearch ... />
</Property>

我发现,这样可以解决一些问题,同时试图修复与另一个安装程序修复的问题。 :我发现这个职位有用维修时维克斯安装空白了注册表设置 。

我还发现由罗布Mensching一个博客帖子有这种性质的问题非常有用: http://robmensching.com/blog/posts/2010/5/2/The-WiX-toolsets-Remember-Property-pattern



文章来源: WiX XmlConfig: Elements not removed on uninstall