Bündeln Sie mehrere Unterstützungsdateien für WiX Burn

Ich habe eine MSI eines Drittanbieters, die mir von einem Anbieter zur Verfügung gestellt wurde. Die MSI ist jedoch nicht eigenständig, sondern benötigt mehrere Unterstützungsdateien (DLLs, Konfigurationsdateien, Gerätetreiber ...), um eine Installation abzuschließen. Ich habe versucht, ohne diese Dateien im Verzeichnis mit der MSI zu installieren, und es beschwert sich über die fehlenden Dateien während der Installation. Mir scheint, das ist eine merkwürdige Art, einen Installer zu bauen. Wie auch immer, ich möchte diese "Installation" bündeln, damit sie von Burn verwendet wird. Ich habe MSIPackage schon einmal verwendet, aber das funktioniert für eine einzelne Datei. Wie würde ich diese Gruppe von Dateien angeben? Ich bin versucht, eine neue MSI zu erstellen, die die MSI von Drittanbietern und die zusätzlichen Dateien enthält, aber dann habe ich ein Phantomprogramm installiert, das wirklich nicht das ist, was ich will.

Vielen Dank im Voraus für Ihre Hilfe

EDIT mit Lösung:

ielen Dank an Tom für die Schlüssel zu diesem Problem. Für diejenigen, die neugierig sind, hier ist der Code und die Schritte, die ich verwendet habe, um dieses Problem in WiX 3.8 zu lösen.

Zunächst das Verzeichnis abrufen, in dem das Installationsprogramm eines Drittanbieters gespeichert wurde.

"%WIX%bin\heat.exe" dir "$(ProjectDir)..\ThirdParty\AppDirectory" -dr Dir_AppName -cg PAYGROUP_AppName -ag -sreg -scom -srd -var "var.AppNameDir" -t "$(ProjectDir)\ComponentToPayload.xsl" -out "$(ProjectDir)AppNamePayloadGroup.wxs"

Wo AppNameDir ist eine Präprozessorvariable, die auf den Speicherort der App-Installationsdateien verweist.

Meine Transformationsdatei unterschied sich ein wenig von der von Tom verknüpften, aber nicht sehr. Ich habe eine Komponentengruppe in meiner ursprünglichen Heat-Datei erstellt und diese später als PayloadGroup und nicht als DirectoryRef verwendet.

<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:wix="http://schemas.microsoft.com/wix/2006/wi"
  xmlns="http://schemas.microsoft.com/wix/2006/wi">

  <xsl:template match="/">
    <Wix>
      <Fragment>
        <xsl:apply-templates select="*" />
      </Fragment>
    </Wix>
  </xsl:template>

  <xsl:template match="//wix:ComponentGroup">
    <PayloadGroup>
      <xsl:attribute name="Id">
        <xsl:value-of select="@Id"/>
      </xsl:attribute>
      <xsl:apply-templates select="*" />
    </PayloadGroup>
  </xsl:template>

  <xsl:template match="//wix:File">
    <Payload>
      <xsl:attribute name="SourceFile">
        <xsl:value-of select="@Source"/>
      </xsl:attribute>
    </Payload>
  </xsl:template>

</xsl:stylesheet>

Dann habe ich ein Fragment für die Komponente erstellt und auf die Payload-Gruppe @ verwiese

  <Fragment>
    <PackageGroup Id="PCKGRP_AppName">
      <MsiPackage
        SourceFile="$(var.AppNameDir)\app.msi">
        <MsiProperty Name="PropertyName1" ="Value1"/>
        <MsiProperty Name="PropertyName2" ="Value2"/>
        <MsiProperty Name="PropertyName3" ="Value3"/>
        <PayloadGroupRef Id="PAYGROUP_AppName"/>
      </MsiPackage>
    </PackageGroup>
  </Fragment>

Und dann endlich die Gruppe in der Kette referenzieren

    <Chain>
...
      <PackageGroupRef Id="PCKGRP_AppName"/>
...
    </Chain>