J'essaie d'ajouter mon raccourci de programme à un dossier existant dans les raccourcis du menu Démarrer. Par exemple All Programs -> AppNameFolder -> AppNameVersionFolder -> AppShortcut
Utiliser le programme d'installation Wix pour ajouter un raccourci au sous-dossier dans les programmes du menu Démarrer
Pour y parvenir, j'ajouté les lignes supplémentaires:
<Directory Id="ProgramMenuFolderApp" Name="App">
<Directory Id="ProgramMenuDir" Name="APP 6.3.0">
au code suivant dans mon fichier .wxs:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder" Name="Program Files">
<Directory Id="CompanyName" Name="CompanyName">
<Directory Id="App" Name="App">
<Directory Id="INSTALLDIR" Name="App 6.3.0">
<Component Id="MainExecutable" Guid="23FFE6FD-2BEA-4946-9875-8DBEEA5AAF55">
<File Id="AppEXE" Name="App.exe" Source="App.exe" KeyPath="yes">
<Shortcut Id="startmenu" Directory="ProgramMenuDir" Name="App 6.3.0" WorkingDirectory='INSTALLDIR' Icon="App.exe" IconIndex="0" Advertise="yes" />
<Shortcut Id="desktopApp" Directory="DesktopFolder" Name="App 6.3.0" WorkingDirectory='INSTALLDIR' Icon="App.exe" IconIndex="0" Advertise="yes" />
</File>
</Component>
</Directory>
</Directory>
</Directory>
</Directory>
<Directory Id="ProgramMenuFolder" Name="Programs">
<Directory Id="ProgramMenuFolderApp" Name="App">
<Directory Id="ProgramMenuDir" Name="App6.3.0">
<Component Id="ProgramMenuDir" Guid="BF266F76-192A-493E-B5C7-C54660E61D7D">
<RemoveFolder Id="ProgramMenuDir" On="uninstall" />
<RegistryValue Root="HKCU" Key="Software\CompanyName\App6.3.0" Type="string" Value="" KeyPath="yes" />
</Component>
</Directory>
</Directory>
</Directory>
<Directory Id="DesktopFolder" Name="Desktop" />
</Directory>
Je reçois l'erreur suivante lorsque je tente et construire:
The directory ProgramMenuFolderApp is in the user profile but is not listed in the RemoveFile table
.
Cependant, je ne veux pas supprimer les dossiers de niveau supérieur lorsque je désinstalle, je veux seulement supprimer le dossier App 6.3.0 et ci-dessous. Comment puis-je ajouter le raccourci à un sous-dossier de programme dans le menu Démarrer?
Parfait! Je ne me suis pas rendu compte que même si la liaison avec light.exe affichait une erreur, elle créait toujours un MSI. Le répertoire "App" ne sera pas vide, il aura d'autres dossiers pour la même application mais des versions différentes. – Seth
Je viens d'ajouter ' ' au composant 'ProgramMenuDir' et j'obtiens toujours l'erreur. –
Seth
@Seth, Donc vous avez toujours l'erreur après avoir ajouté RemoveFolder au composant ProgramMenuDir, hein? Je pense que RemoveFolder devrait être dans le répertoire qu'il supprime, pas au même niveau que celui-ci. En outre, avez-vous ajouté un RegistryValue pour le second RemoveFolder? –