1

我想创建一个简单的合并模块,其中包含一个名为“build”的目录的所有文件,并将它们安装到程序文件文件夹中。我将使用 heat 生成包含所有这些文件的 wxs 文件,并且我希望将其与我为合并模块手动编辑的 wxs 文件分开。如何从我的其他合并模块 wxs 文件中引用生成的热量文件?

我像这样生成我的 heat wxs 文件:

heat dir build -cg heatComponent -gg -var var.buildFolder -dr ProgramFilesFolder -srd -out heatComponent.wxs

我知道如何创建一个 msi 文件:

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Product Name='product' Id='9f6edf70-539a-11e4-916c-0800200c9a66' UpgradeCode='bb651370-539a-11e4-916c-0800200c9a66'
        Language='1033' Codepage='1252' Version='1.0.0' Manufacturer='Test'>
        <Package Id='*' Description="A product" InstallerVersion='301' Languages='1033'       Compressed='yes' SummaryCodepage='1252' Platform='x64'/>

        <Media Id="1" Cabinet="product.cab" EmbedCab="yes" />

        <Directory Id='TARGETDIR' Name='SourceDir'>
            <Directory Id='ProgramFilesFolder'/>
        </Directory>

        <Feature Id="Files" Title="Main Feature" Level="1">
            <ComponentGroupRef Id="heatComponent"/>
        </Feature>
    </Product>
</Wix>

但是,当我想输出合并模块时,如何引用 ComponentGroup 呢?如果我将 Product 元素更改为 Module 元素,它会抱怨 Feature 元素。如果我删除它,它可以工作,但我的 msm 中没有任何文件。

4

1 回答 1

3

根据您发布的 heat 命令,尝试使您的模块定义(module1.wxs)看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Module Id="Mod1" Language="0" Version="1.0.0">
    <Package Id="YOUR-GUID" Manufacturer="Acme" />
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder" />
    </Directory>
    <ComponentGroupRef Id="heatComponent"/>
  </Module>
</Wix>

然后你可以像这样调用蜡烛:

candle module1.wxs heatComponent.wxs -dbuildFolder="FOLDER-CONTAINING-FILES-HERE"

接着是这样的光:

light module.wixobj heatComponent.wixobj -o Module1.msm
于 2014-10-16T15:48:41.933 回答