首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用wix工具集修改XML文件

如何使用wix工具集修改XML文件
EN

Stack Overflow用户
提问于 2014-03-31 10:55:09
回答 1查看 4.7K关注 0票数 2

我有包含下一个内容的XML文件:

代码语言:javascript
复制
    <!--<appcache appCacheType="None" />-->
<appcache appCacheType="SingleClient" defaultExpiration="3600"/>

在安装修补程序时,我需要将XML文件中的内容更改为:

代码语言:javascript
复制
    <appcache appCacheType="None" />
    <!--<appcache appCacheType="SingleClient" defaultExpiration="3600"/>-->

有什么更好的方法去做呢?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2014-04-01 07:37:53

为了这个目的,我试图(徒劳无功)使用MSI社区扩展,但没能让它们启动并运行。最后,我使用了Util扩展中的util:XmlFile-tag,它运行得完美无缺。

  • Wix-element中向源文件添加Util-扩展名的命名空间: xmlns:util="http://schemas.microsoft.com/wix/UtilExtension
  • 然后将其用作相关组件的子元素。在您的示例中,您希望删除一个属性并更改另一个属性的值。下面的技巧应该是这样的,只需将ElementPath-attribute中的-attribute调整为与您的标记匹配的appcache-tag (在示例中它更新了带有值SingleClient的属性appCacheTypeappcache-tag)和XML-文件的文件键:
代码语言:javascript
复制
<Component Id="myComponentToUpdateTheXmlFile" ... >
    <!-- Removing the defaultExpiration-attribute first -->
    <util:XmlFile Id="UpdateAppCacheTag" Action="deleteValue" ElementPath="//appcache[\[]@appCacheType='SingleClient'[\]]/@defaultExpiration" File="[#MyConfigFile.xml]" SelectionLanguage="XPath" Sequence="1" Name="defaultExpiration" />
    <!-- Now updating the value -->
    <util:XmlFile Id="UpdateAppCacheTag" Action="setValue" ElementPath="//appcache[\[]@appCacheType='SingleClient'[\]]/@appCacheType" File="[#MyConfigFile.xml]" SelectionLanguage="XPath" Sequence="2" Value="None" />
</Component>
  • 在调用蜡烛和光时,一定要在命令行中添加Util-扩展: . -ext \WixUtilExtension.dll

如果您只想在例如修补过程中这样做,那么为这个组件添加适当的条件。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22759769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档