对特征元素中的组件进行排序

Kim*_*Kim 5 wix wix3.5

我想替换安装程序已安装的文件。在以下代码中,“OneCoreFiles”组件应首次安装文件(正在运行),并且组件“ConfigCopyFile”应替换该配置文件。

但代码没有按预期工作。首先执行组件“ConfigCopyFile”,然后执行“OnecoreFiles”。我希望它能以另一种方式工作。

我还在学习WIX,并认为Feature元素中的组件是按照它们声明的顺序执行的。

代码片段:

<Component Id="ConfigCopyFile" Guid="{98E61055-5A84-4003-90D1-7A67677D7465}">
  <Condition>CONFIGFILEEXISTS</Condition>
  <CopyFile Id="ConfigFileId" SourceProperty="CONFIGFILEEXISTS" DestinationProperty  ="INSTALLDIR"/>
</Component>

<Feature Id="ProductFeature" Title="OneCore Features" Level="1">
        <ComponentRef Id="LogEntries" />
        <ComponentGroupRef Id="OneCoreFiles" />
        <ComponentRef Id="AppDBConfiguration" />
        <ComponentRef Id="SqlServerConfiguration" />
        <ComponentRef Id="OracleConfiguration" />
        <ComponentRef Id="IISConfiguration" />
        <ComponentRef Id="ConfigCopyFile" />
    </Feature>
Run Code Online (Sandbox Code Playgroud)

这一定很容易解决。我是不是错过了什么。请指教。

Chr*_*ter 6

您对 WiX 的看法是错误的。它不是一种脚本语言。它是一种表示 Windows Installer 数据库的方式,该数据库本质上是声明性的,而不是命令性的。如果我列出一堆组件和文件,则文件的复制顺序是不确定的。我只是说需要安装这些文件,而不是说如何安装它们。

Windows Installer 确实公开了驱动事物顺序的序列表(例如创建文件夹然后复制文件),但它不会微观管理到在该文件之前复制该文件的级别。

建议的 安装执行顺序

安装执行序列