2009-08-09 3 views
3

En suivant un exemple de code sur le réseau, j'ai fait fonctionner mon premier programme d'installation WiX. Cependant, il a placé le raccourci de mon menu de programme directement sur les menus de programme. Je veux vraiment créer un dossier, Sample, dans Menus de programme pour mon lien.Dossier dans le dossier du menu Programme pour WiX 3

Code d'origine:

<Shortcut Id="startmenuSample" Directory="ProgramMenuFolder" Name="Sample 0.5" 
WorkingDirectory='INSTALLDIR' Icon="Sample.exe" IconIndex="0" Advertise="yes"> 

Tentative de code de modification (échoue avec l'erreur du compilateur):

<Shortcut Id="startmenuSample" Directory="ProgramMenuFolder\Sample" Name="Sample 0.5" 
WorkingDirectory='INSTALLDIR' Icon="Sample.exe" IconIndex="0" Advertise="yes"> 

Notez l'ajout de \ Sample.

Comment puis-je ajouter ce lien à un nouveau dossier dans le menu Programme?

+0

Jetez un oeil à ce http://www.tramontana.co.hu /wix/lesson1.php#1.2 –

+0

@Shay: Vu celui-là, mais le problème que j'ai est qu'il montre des fragments du fichier XML. Ce n'est pas clair pour moi comment les pièces nichent/dans quel ordre elles doivent être. –

+0

@Shay: Après avoir dit cela, j'ai remarqué que le lien de téléchargement pour l'échantillon complet un peu plus loin dans le tutoriel. Je vais essayer. –

Répondre

5

Ceci est un test de l'échantillon que je l'ai fait, quand on m'a demandé de faire la même chose

<Package InstallerVersion="200" Compressed="yes" /> 

<WixVariable Id="Manufacturer" Value="StackOverFlowHelper"/> 
<WixVariable Id="ShortProduct" Value="ShortCuts"/> 

<Media Id="1" Cabinet="WixShortCut.cab" EmbedCab="yes" /> 

<Icon Id="ShortCutIcon" SourceFile="YOUR.ico"/> 

<!-- The icon that appears in Add & Remove Programs. --> 
<Property Id="ARPPRODUCTICON" Value="ShortCutIcon" /> 

<Directory Id="TARGETDIR" Name="SourceDir"> 
    <Directory Id="ProgramFilesFolder"> 

    <Directory Id="ManufacturerFolder" Name="!(wix.Manufacturer)"> 
     <Directory Id="INSTALLLOCATION" Name="!(wix.ShortProduct)"> 
     <Component Id="ProductComponent" Guid="{YOUR_GUID}" KeyPath="yes"> 
      <CreateFolder/> 
     </Component> 
     </Directory> 
    </Directory> 
    <Directory Id="ProgramMenuFolder"> 
     <Directory Id="ProgramMenuManufacturer" Name="!(wix.ShortProduct)" /> 
    </Directory> 
    </Directory> 
</Directory> 



<DirectoryRef Id="ProgramFilesFolder"> 
    <Component Id="ProgramMenuShortcuts" Guid="{YOUR_GUID}"> 
    <CreateFolder Directory="ProgramMenuManufacturer"/> 
    <RemoveFolder Id="RemoveMenuShortcuts" Directory="ProgramMenuManufacturer" On="uninstall" /> 

    <RegistryValue Root="HKCU" Key="Software\!(wix.Manufacturer)\!(wix.ShortProduct)" Name="InstalledStartMenuShortcuts" Type="integer" Value="1" /> 
    </Component> 
</DirectoryRef> 

<DirectoryRef Id="INSTALLLOCATION" FileSource="Files"> 
    <Component Id="WixShortCut" Guid="{YOUR_GUID}"> 
    <File Id="Test.ShortCut" Vital="yes" Name="A_DOC.pdf" /> 

    <CreateFolder /> 
    <RegistryKey Root="HKCU" Key="Software\!(wix.Manufacturer)\!(wix.ShortProduct)" Action="createAndRemoveOnUninstall"> 
     <RegistryValue Name="ShortCut" Value="1" Type="integer" KeyPath="yes"/> 
    </RegistryKey> 

    <!-- Shortcut in Start menu. --> 
    <Shortcut Id="ProgramMenuApplicationShortcut" Name="!(wix.ShortProduct)" Target="[#Test.ShortCut]" 
         Directory="ProgramMenuManufacturer" Show="normal" Icon="ShortCutIcon"/> 
    </Component> 
</DirectoryRef> 

<Feature Id="ProductFeature" Title="WixShortCuts" Level="1"> 
    <ComponentRef Id="ProductComponent"/> 
    <ComponentRef Id="ProgramMenuShortcuts"/> 
    <ComponentRef Id="WixShortCut"/> 
</Feature> 

+1

Merci à vous deux pour vos suggestions. Je suis sûr que les deux sont corrects, mais celui-ci m'a fourni l'information clé dont j'avais besoin. Pour les autres qui apprennent WiX, vous pouvez trouver ce lien utile: http://blogs.technet.com/alexshev/pages/from-msi-to-wix.aspx –

+0

Merci CheGue! – user187023

2

Dans Windows Installer, vous devez créer un répertoire nouveau sous ProgramMenuFolder, puis le référencer.

<Directory Id="ProgramMenuFolder" > 
    <Directory Id="ProgramMenuDir" Name='My Folder'> 
    </Directory> 
</Directory> 

<Shortcut Id="startmenuSample" Directory="ProgramMenuFolder" Name="Sample 0.5" 
    WorkingDirectory='INSTALLDIR' Icon="Sample.exe" IconIndex="0" Advertise="yes"> 
+0

Ma première tentative d'essayer ceci a échoué, bien qu'il puisse certainement être l'erreur d'utilisateur. Pouvez-vous pointer vers un exemple complet? –

Questions connexes