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

前端之家收集整理的这篇文章主要介绍了为什么我的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安装程序然后来了,说具有目录键路径的组件必须确保创建目录,即使其他事情将这样做。这是一个愚蠢的规则与一个容易解决
原文链接:https://www.f2er.com/xml/293652.html

猜你在找的XML相关文章