Estoy tratando de agregar el acceso directo de mi programa a una carpeta existente en los accesos directos del menú de inicio. Por ejemplo All Programs -> AppNameFolder -> AppNameVersionFolder -> AppShortcut
Usar el instalador Wix para agregar acceso directo a la subcarpeta en los programas del menú de inicio
Para lograr esto añade las líneas adicionales:
<Directory Id="ProgramMenuFolderApp" Name="App">
<Directory Id="ProgramMenuDir" Name="APP 6.3.0">
al código siguiente en mi archivo .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>
me sale el siguiente error cuando intento y construir:
The directory ProgramMenuFolderApp is in the user profile but is not listed in the RemoveFile table
.
Sin embargo, no quiero eliminar las carpetas de nivel superior cuando desinstalo, solo quiero eliminar la carpeta de la aplicación 6.3.0 y más abajo.
¿Cómo puedo agregar el acceso directo a una subcarpeta del programa en el menú de inicio?
¡Estupendo! No me di cuenta de que, aunque el enlace con light.exe mostraba un error, todavía estaba creando un MSI. El directorio "App" no estará vacío, tendrá otras carpetas para la misma aplicación pero diferentes versiones. – Seth
Acabo de agregar ' ' al componente 'ProgramMenuDir' y sigo recibiendo el error. –
Seth
@Seth, entonces todavía tiene el error después de agregar RemoveFolder al componente ProgramMenuDir, ¿eh? Creo que RemoveFolder debería estar dentro del directorio que está eliminando, no en el mismo nivel. Además, ¿agregó RegistryValue para el segundo RemoveFolder? –