【问题标题】:How do I create components with different directories under same component group?如何在同一组件组下创建具有不同目录的组件?
【发布时间】:2017-07-26 08:38:49
【问题描述】:

如何在同一个组件组下创建不同目录的组件?

样品加热命令: "%WIX%bin\heat.exe" 目录 %SOURCE%\%VERSION% -srd -dr 视频 -cg 加密 -gg -nologo -out abc.wxs -模板:片段

【问题讨论】:

    标签: wix wix3.7 heat


    【解决方案1】:

    如果您手动编辑作为 Heat 工具输出的 abc.wxs 文件,您可以根据需要将组件移动到不同的目录。您可以在 ComponentGroup 中放置多个 ComponentRef 元素,以链接到要组合在一起的不同组件:

    <ComponentGroup Id="MyComponentGroup">
        <ComponentRef Id="Component1"/>
        <ComponentRef Id="Component2"/>
        <ComponentRef Id="Component3"/>
    </ComponentGroup>
    

    这允许将多个组件组合在一起,从而使整个组很容易被相似的 ComponentGroupRef 元素引用。

    【讨论】:

      【解决方案2】:

      heat.exe 背后的想法是,您可以给它一个单独的文件夹来分析和生成要安装的组件(以及包含组件的子目录)。通常你会有一个根安装文件夹。因此,假设您的安装目录结构如下所示:

      \MyProgramRoot
          \Video <-- The folder you are referencing in the heat.exe command.
          \SomeOtherFolder
          \Etc
      

      如果是这种情况,我建议改为在应用程序的实际根目录上运行 heat,即MyProgramRoot。根据前面的示例,您的命令需要以下内容:

      "%WIX%bin\heat.exe" dir %SOURCE%\%VERSION% -srd -dr MyProgramRoot -cg Encrypted -gg -nologo -out abc.wxs -template:fragment
      

      这里发生的情况是,您仍然会得到一个组件组,Encrypted,但heat.exe 也会生成各种子目录,Video , SomeOtherFolder, Etc, 以及所有包含在其中的组件。

      但是,假设您的文件夹结构不是单根目录,即:

      C:\One\Path\To\Install\Video
      C:\Another\Path\To\Install\SomeOtherFolder
      C:\Yet\Another\Path\To\Install\Etc
      

      这带来了一个问题,因为heat.exe 专门为单个根目录生成 WiX 代码。在这种情况下,我将为我的应用程序的所有根目录调用heat.exe,并为每个根目录生成组件组。然后,您只需在适当的 Feature 元素中引用这些组件组,如下所示:

      <Feature Id="MyMainFeature">
          <ComponentGroupRef Id="VideoComponentGroup" />
          <ComponentGroupRef Id="SomeOtherComponentGroup" />
          <ComponentGroupRef Id="EtcComponentGroup" />
      </Feature>
      

      有关Heat.exe(也称为Harvest 工具)功能的更多信息,请查看official documentation

      【讨论】:

        猜你喜欢
        • 2020-03-23
        • 2020-02-29
        • 1970-01-01
        • 1970-01-01
        • 2019-10-13
        • 1970-01-01
        • 2018-07-15
        • 2012-04-23
        • 2019-10-11
        相关资源
        最近更新 更多