Sto tentando di aggiungere il collegamento del programma a una cartella esistente nelle scorciatoie del menu Start. Per esempio All Programs -> AppNameFolder -> AppNameVersionFolder -> AppShortcut
Utilizzare il programma di installazione Wix per aggiungere un collegamento alla sottocartella nei programmi startmenu
Al fine di raggiungere questo ho aggiunto le linee extra:
<Directory Id="ProgramMenuFolderApp" Name="App">
<Directory Id="ProgramMenuDir" Name="APP 6.3.0">
al seguente codice nel mio file .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>
ricevo il seguente errore quando provo e build:
The directory ProgramMenuFolderApp is in the user profile but is not listed in the RemoveFile table
.
Tuttavia, non desidero rimuovere le cartelle di livello superiore quando si disinstalla, desidero solo rimuovere la cartella App. 6.3.0 e di seguito.
Come posso aggiungere il collegamento a una sottocartella di programma nel menu di avvio?
Ottimo! Non mi ero reso conto che anche se il collegamento con light.exe stava mostrando un errore, stava ancora creando un MSI. La directory "App" non sarà vuota, avrà altre cartelle per la stessa applicazione ma versioni differenti. – Seth
Ho appena aggiunto ' ' al componente 'ProgramMenuDir' e sto ancora ricevendo l'errore. –
Seth
@Seth, Quindi hai ancora ricevuto l'errore dopo aver aggiunto RemoveFolder al componente ProgramMenuDir, eh? Penso che RemoveFolder dovrebbe essere all'interno della directory che sta rimuovendo, non allo stesso livello di quello. Inoltre, hai aggiunto un valore RegistryValue per il secondo RemoveFolder? –