2010-03-24 11 views
5

estoy usando heat.exe para generar fragmentos similares a esto:Adición de acceso directo para el archivo de WiX en un fragmento diferente

<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> 

Estos fragmentos se almacenan en el archivo wxs generada automáticamente.

estoy a continuación, la adición de ellos en mi función (en el archivo principal de WiX) de esta manera:

<ComponentGroupRef Id="Components"/> 

Esto funciona bien.

Sin embargo, también me gustaría agregar un acceso directo a Bar.exe en mi menú de inicio. Lo ideal es que quiera hacer esto en mi archivo wix principal, con el componente Bar.exe todavía residiendo en el archivo wxs autogenerado. ¿Cómo abordaría este problema sin modificar el código generado automáticamente?

Respuesta

2

¿Desea necesariamente que resida en la definición? Puede tenerlo en un componente separado, como se muestra en el manual: http://wix.sourceforge.net/manual-wix3/create_start_menu_shortcut.htm

De lo contrario, probablemente deba transformar la salida de calor con la transformada XSL agregando la definición allí. Heat.exe acepta el cambio para aplicar la transformación XSL justo después de la cosecha.

Espero que esto ayude.

Cuestiones relacionadas