2010-01-05 12 views
9

Ich versuche, meine Programmverknüpfung zu einem vorhandenen Ordner im Startmenü Verknüpfungen hinzuzufügen. Zum Beispiel All Programs -> AppNameFolder -> AppNameVersionFolder -> AppShortcutVerwenden 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?

Antwort

9

Wenn diese Nachricht von ICE64 kommt, ist es eine Warnung. ICE-Warnungen sollten verstanden und wenn akzeptabel ignoriert werden. http://msdn.microsoft.com/en-us/library/aa369011(VS.85).aspx hat folgendes zu sagen:

ICE64 überprüft, ob neue Verzeichnisse in das Benutzerprofil korrekt in Roaming-Szenarien werden entfernt.

Failure eine Warnung oder einen Fehler zu beheben von ICE64 gemeldet führt in der Regel zu Probleme in vollständig während einer Deinstallation des Computer reinigen. Wenn ein Roaming-Benutzer, der installiert hat, die Anwendung zum ersten Mal an einem Computer anmeldet, wird das gesamte Profil auf den Computer kopiert. Auf Werbung (die nach der Roaming-Profil-Download stattfindet), überprüft das Installer, dass das Verzeichnis bereits dort ist und daher es nicht bei der Deinstallation löschen. Dieses verlässt das Verzeichnis auf dem Computer des Benutzers dauerhaft.

Es ist nicht klar, warum Sie ein leeres "App" Verzeichnis im Startmenü lassen möchten. Anscheinend ist das ICE-Problem am einfachsten zu lösen. Fügen Sie dazu einfach ein anderes RemoveFolder-Element zu Ihrer ProgramMenuDir-Komponente hinzu.

+0

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

+0

Ich habe gerade hinzugefügt '' auf die 'ProgramMenuDir' Komponente und ich bekomme immer noch den Fehler. – Seth

+0

@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? –

Verwandte Themen