L'aggiunta di collegamento per il file WiX in un frammento diverso
Domanda
sto usando heat.exe per generare frammenti simili a questo:
<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>
Questi frammenti vengono memorizzate nel file WXS auto-generata.
Sono poi aggiungendoli nella mia funzione (nel file WiX principale) in questo modo:
<ComponentGroupRef Id="Components"/>
Questo funziona bene.
Tuttavia, vorrei anche aggiungere un collegamento a Bar.exe al mio menu di avvio. Io idealmente voglio fare questo nel mio file Wix principale, con la componente Bar.exe ancora risiede nel file WXS auto-generata. Come faccio a affrontare questo problema senza modificare il codice generato automaticamente?
Soluzione
Ti necessariamente vuole che risiedono nella definizione? Si può avere in un componente separato, il modo in cui viene dimostrato nel manuale: http: //wix.sourceforge.net/manual-wix3/create_start_menu_shortcut.htm
In caso contrario, probabilmente si dovrebbe trasformare la produzione di calore con la trasformazione XSL aggiungendo la definizione lì. Heat.exe accetta l'interruttore di applicare trasformazione XSL a destra dopo la raccolta.
Spero che questo aiuti.