Ich versuche, meine Programmverknüpfung zu einem vorhandenen Ordner im Startmenü Verknüpfungen hinzuzufügen. Zum Beispiel All Programs -> AppNameFolder -> AppNameVersionFolder -> AppShortcut
Verwenden Wix Installer, um Verknüpfung zu Unterordner in Startmenü-Programmen hinzufügen
Um dies zu erreichen, habe ich die zusätzliche Linien:
<Directory Id="ProgramMenuFolderApp" Name="App">
<Directory Id="ProgramMenuDir" Name="APP 6.3.0">
den folgenden Code in meiner .wxs Datei:
<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>
ich folgende Fehlermeldung erhalten, wenn ich versuche, und bauen:
.
Allerdings möchte ich die Ordner der höheren Ebene nicht entfernen, wenn ich deinstalliere, ich möchte nur den Ordner App 6.3.0 und darunter entfernen.
Wie kann ich die Verknüpfung zu einem Programmunterordner im Startmenü hinzufügen?
Großartig! Ich habe nicht bemerkt, dass obwohl die Verbindung mit light.exe einen Fehler zeigte, es immer noch ein MSI erzeugte. Das "App" -Dir wird nicht leer sein, es wird andere Ordner für die gleiche Anwendung aber verschiedene Versionen haben. – Seth
Ich habe gerade hinzugefügt ' ' auf die 'ProgramMenuDir' Komponente und ich bekomme immer noch den Fehler. –
Seth
@Seth, Sie haben den Fehler nach dem Hinzufügen von RemoveFolder zu der ProgramMenuDir-Komponente erhalten, nicht wahr? Ich denke, RemoveFolder sollte in dem Verzeichnis sein, das es entfernt, nicht auf der gleichen Ebene wie es. Haben Sie auch einen RegistryValue für den zweiten RemoveFolder hinzugefügt? –