6

次のようなフラグメントを生成するために heat.exe を使用しています。

<Fragment>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="id1" Guid="*">
      <File Id="fid1" KeyPath="yes" Source="SourceDir\Foo1.dll" />
    </Component>
    <Component Id="id2" Guid="*">
      <File Id="fid2" KeyPath="yes" Source="SourceDir\Foo2.dll" />
    </Component>
    <Component Id="id3" Guid="*">
      <File Id="fid3" KeyPath="yes" Source="SourceDir\Bar.exe" />
    </Component>
  </DirectoryRef>
</Fragment>

<Fragment>
    <ComponentGroup Id="Components">
        <ComponentRef Id="id1" />
        <ComponentRef Id="id2" />
        <ComponentRef Id="id3" />
    </ComponentGroup>
</Fragment>

これらのフラグメントは、自動生成された wxs ファイルに保存されます。

次に、それらを次のように機能 (メインの WiX ファイル) に追加します。

<ComponentGroupRef Id="Components"/>

これはうまくいきます。

ただし、Bar.exe へのショートカットをスタート メニューに追加したいと考えています。理想的には、自動生成された wxs ファイルに Bar.exe コンポーネントがまだ存在する状態で、メインの wix ファイルでこれを実行したいと考えています。自動生成されたコードを変更せずに、この問題にどのように対処すればよいでしょうか?

4

1 に答える 1

2

必然的にそれを定義に含める必要がありますか?マニュアルに示されているように、別のコンポーネントに含めることができます:http ://wix.sourceforge.net/manual-wix3/create_start_menu_shortcut.htm

それ以外の場合は、XSL変換を使用して、そこに定義を追加して熱出力を変換する必要があります。Heat.exeは、ハーベスティングの直後にXSL変換を適用するためのスイッチを受け入れます。

お役に立てれば。

于 2010-03-24T10:22:53.407 に答える