为什么我的WiX安装程序需要一个空的CreateFolder有条件地更新Xml文件?

TL; DR:为什么我需要一个空的< CreateFolder />元素在这个条件组件中,以使其工作?

我将一个简单的基于WiX的安装程序用于内部应用程序。此安装程序需要部署标准配置文件(正常的.NET .config文件),然后使用在命令行上传递给msiexec的属性来自定义它。

其中一个自定义是仅在已定义RUNTIME属性时创建特定应用程序设置。这里是WiX组件:

<Component Id="C.Rbnz.Fsis.CollectionPeriodService.exe.config.runtime"
             Guid="(71E6D273-427D-41FD-865A-FB55E9F0988C)">
    <Condition>
      <![CDATA[RUNTIME]]>
    </Condition>

    <CreateFolder/>

    <util:XmlFile Id="X.Runtime.1"
                  Action="createElement"
                  ElementPath="/configuration/appSettings"
                  File="[#F.Rbnz.Fsis.CollectionPeriodService.exe.config]"
                  Name="add"
                  Sequence="2"/>

    <util:XmlFile Id="X.Runtime.2"
                  File="[#F.Rbnz.Fsis.CollectionPeriodService.exe.config]"
                  ElementPath="/configuration/appSettings/add[\[]not(@key)[\]]"
                  Action="setValue"
                  Name="key"
                  Value="RunTime"
                  Sequence="3"/>

    <util:XmlFile Id="X.Runtime.3"
                  File="[#F.Rbnz.Fsis.CollectionPeriodService.exe.config]"
                  ElementPath="/configuration/appSettings/add[\[]@key='RunTime'[\]]"
                  Action="setValue"
                  Name="value"
                  Value="[RUNTIME]"
                  Sequence="4"/>

  </Component>

这个工作就像我想要的 – 如果在命令行上为msiexec指定了RUNTIME,则创建新的元素;如果没有,没有发生。

为什么我必须有空的< CreateFolder />在这个组件?

在我试图让这个工作,我发现“Wix Condition Statement”,它显示了一个工作组件,但不解释为什么< CreateFolder />是必要的。

删除< CreateFolder />给我这个错误:

ICE18: KeyPath for Component: ‘C.Rbnz.Fsis.CollectionPeriodService.exe.config.runtime’ is Directory: ‘INSTALLDIR’. The Directory/Component pair must be listed in the CreateFolders table.

这是,我敢肯定,一旦你知道这是什么意思,相当信息。

每个组件都有一个关键路径;最常见的是一个文件。您的组件没有文件或其他键路径,因此WiX将其默认为目录。 Windows安装程序然后来了,说具有目录键路径的组件必须确保创建目录,即使其他事情将这样做。这是一个愚蠢的规则与一个容易解决。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇