我正在使用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>
Run Code Online (Sandbox Code Playgroud)
这些片段存储在自动生成的wxs文件中.
然后我将它们添加到我的功能(在主WiX文件中),如下所示:
<ComponentGroupRef Id="Components"/>
Run Code Online (Sandbox Code Playgroud)
这很好用.
但是,我还想在我的开始菜单中添加Bar.exe的快捷方式.理想情况下,我想在我的主wix文件中执行此操作,Bar.exe组件仍驻留在自动生成的wxs文件中.如何在不修改自动生成的代码的情况下解决此问题?
您一定希望它驻留在定义中吗?您可以将其放在单独的组件中,就像手册中演示的那样:http ://wix.sourceforge.net/manual-wix3/create_start_menu_shortcut.htm
否则,您可能应该通过在其中添加定义来使用 XSL 转换来转换热量输出。Heat.exe 接受在收获后立即应用 XSL 转换的开关。
希望这可以帮助。