2013-01-29 15 views
6

Ich versuche, ein Installer-Projekt für eine Windows-Anwendung unter Verwendung von WiX v3.7 zu erstellen (wie VS2012 ist Einrichtung und Bereitstellung Projekte mehr nicht) zu Lernzwecken. Wix Toolset ist in VS integriert und ich erstelle ein neues WiX Single Installer Setup-Projekt. Das Installationsprogramm immer erfolgreich kompiliert wird (außer Warnungen in Symbol-Erweiterung), es perfekt läuft und stellt Desktop-Verknüpfungen, wie sie sein sollten, aber nicht die richtige Startmenü Verknüpfungen auf Windows 7 Professional x64 Service Pack 1. ich das Web durchsucht setzen und versuchte fast alles, was ich sehe, aber bisher keinen Erfolg. Die Datei product.wxs ist wie folgt und "my_guid" -Strings werden durch richtige GUIDS im Projekt ersetzt. Natürlich fehlt mir ein Punkt, aber ich kann nicht sehen, wo. Der Registrierungsschlüssel wird nicht erstellt, daher wird das letzte Fragment möglicherweise nicht aus einem bestimmten Grund ausgeführt. Wie könnte das gelöst werden?Wix Installer Verknüpfung im Startmenü nicht angezeigt

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
    <Product Id="my_guid" Name="WixSingleSetupExample" Language="1055" Version="1.0.0.0" Manufacturer="Can Yucel" UpgradeCode="my_guid"> 
     <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" /> 

     <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." /> 
     <MediaTemplate /> 

     <Feature Id="ProductFeature" Title="WixSingleSetupExample" Level="1"> 
      <ComponentGroupRef Id="ProductComponents" /> 
      <ComponentRef Id="ApplicationShortcut" /> 
     </Feature> 
    </Product> 

    <Fragment> 
     <Directory Id="TARGETDIR" Name="SourceDir"> 
      <Directory Id="DesktopFolder" Name="Desktop" /> 
      <Directory Id="ProgramMenuFolder"> 
       <Directory Id="ApplicationProgramsFolder" Name="WixSingleSetup"/> 
      </Directory> 
      <Directory Id="ProgramFilesFolder"> 
       <Directory Id="INSTALLFOLDER" Name="WixSingleSetupExample" /> 
      </Directory> 
     </Directory> 
    </Fragment> 

    <Fragment> 
     <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER"> 
      <!-- TODO: Remove the comments around this Component element and the ComponentRef below in order to add resources to this installer. --> 
      <Component Id="ProductTextFile"> 
       <File Source="blankText.txt" KeyPath="yes"> 
        <Shortcut Id="desktopShortcut" Advertise="yes" Directory="DesktopFolder" Name="WixSingleSetup Help" WorkingDirectory="INSTALLFOLDER" Icon="icon1.txt" IconIndex="0"> 
         <Icon Id="icon1.txt" SourceFile="blankText.txt"/> 
        </Shortcut> 
       </File>  
      </Component> 
     </ComponentGroup> 
    </Fragment> 

    <Fragment> 
    <DirectoryRef Id="ApplicationProgramsFolder"> 
     <Component Id="ApplicationShortcut" Guid="my_guid"> 
     <Shortcut Id="ApplicationStartMenuShortcut" 
        Name="WixSingleSetup Help" 
        Description="Setup Example" 
        Target="blankText.txt" 
        WorkingDirectory="INSTALLFOLDER" 
        Icon="icon2.txt" 
        IconIndex="0"> 
      <Icon Id="icon2.txt" SourceFile="blankText.txt"/> 
     </Shortcut> 
     <RemoveFolder Id="ApplicationProgramsFolder" On="uninstall"/> 
     <RegistryValue Root="HKCU" Key="Software/Microsoft/WixSingleSetup" Name="installed" Type="integer" Value="1" KeyPath="yes" /> 
     </Component> 
    </DirectoryRef> 
    </Fragment> 
</Wix> 
+5

Log durch die Installation mit dem folgenden Befehl 'msiexec/i WixSingleSetupExample.msi/lvoicewarmupx log.txt' und sehen, ob die Protokolldatei _log.txt_ einen Hinweis zu geben, warum die Komponente isn‘ t wird installiert. – BryanJ

+0

Ich habe getan, wie Sie gefragt haben, aber die Ausgabeprotokolldatei ist 1545 Zeilen lang. Der Startpfad ist in der Protokolldatei korrekt, aber ich konnte keine Fehler erkennen. Irgendwelche Vorschläge, wo man schaut? Oder ich könnte den Dateilink hier senden, wenn Sie möchten. – mcy

+0

Die akzeptierte Antwort unten löst das Problem. Aber mit deinem Kommentar habe ich gelernt, wie man sich anmeldet, also danke. – mcy

Antwort

16

Ich füge den Code, der für die Zukunft und eine genaue Antwort auf die Frage, wie beabsichtigt funktioniert:

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
    <Product Id="guid_here" Name="WixSingleSetupExample" Language="1055" 
      Version="1.0.0.0" Manufacturer="Can Yucel" UpgradeCode="guid_here"> 
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" /> 

    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." /> 
    <MediaTemplate /> 

    <Feature Id="ProductFeature" Title="WixSingleSetupExample" Level="1"> 
     <ComponentGroupRef Id="ProductComponents" /> 
     <ComponentRef Id="ProgramMenuDir"/> 
    </Feature> 
    </Product> 

    <Fragment> 
    <Directory Id="TARGETDIR" Name="SourceDir"> 

     <Directory Id="DesktopFolder" Name="Desktop" /> 

     <Directory Id="ProgramMenuFolder" Name="Programs"> 
     <Directory Id="ApplicationProgramsFolder" Name="WixSingleSetup"> 
      <Component Id="ProgramMenuDir" Guid="guid_here"> 
      <RemoveFolder Id="ProgramMenuDir" On="uninstall"/> 
      <RegistryValue Root="HKCU" Key="Software\[Manufacturer]\WixSetup" 
          Type="integer" Value="1" Name="installed" KeyPath="yes" /> 
      </Component> 
     </Directory> 
     </Directory> 


     <Directory Id="ProgramFilesFolder"> 
     <Directory Id="INSTALLFOLDER" Name="WixSingleSetupExample" /> 
     </Directory> 
    </Directory> 
    </Fragment> 

    <Fragment> 
    <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER"> 
     <!-- TODO: Remove the comments around this Component element and the 
      ComponentRef below in order to add resources to this installer. --> 
     <Component Id="ProductTextFile"> 
     <File Source="blankText.txt" KeyPath="yes"> 
      <Shortcut Id="desktopShortcut" Advertise="yes" Directory="DesktopFolder" 
        Name="WixSingleSetup Help" WorkingDirectory="INSTALLFOLDER" 
        Icon="icon1.txt" IconIndex="0"> 
      <Icon Id="icon1.txt" SourceFile="blankText.txt" /> 
      </Shortcut> 
      <Shortcut Id="startMenuShotcut" Directory="ApplicationProgramsFolder" 
        Name="WiXSingleSetup Help" WorkingDirectory="INSTALLFOLDER" 
        Icon="icon2.txt" IconIndex="0" Advertise="yes"> 
      <Icon Id="icon2.txt" SourceFile="blankText.txt"/> 
      </Shortcut> 
     </File>  
     </Component> 
    </ComponentGroup> 
    </Fragment> 
</Wix> 
+1

+1 verbrachte ich mehr Zeit zu finden versuchen, dass ich versuche, zugeben will, dies zu tun! Danke, es funktioniert perfekt. –

+0

@mcy Also, was war das Problem, das Sie gelöst haben? – nam

0

Ich habe vor kurzem Wix begonnen haben, mit und ich mit dem Problem stecken geblieben du beschreibst seit Wochen.

fand ich eine andere Art und Weise Startmenü Verknüpfungen hinzuzufügen, ohne zusätzliche Komponenten und ohne Erstellung von Hot-Keys auf dem Zielcomputer Registrierung (Menü-Ordner zu entfernen).

Dies kann durch Verschieben der <RemoveFolder ... /> Definition in <Component Id="ProductTextFile" ...> Element erfolgen. Im folgenden wird das modifizierte Arbeits Skript:

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
    <Product Id="{GUID HERE}" Name="WixSingleSetupExample" Language="1055" 
      Version="1.0.0.0" Manufacturer="Can Yucel" UpgradeCode="{GUID HERE}"> 
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" /> 

    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." /> 
    <MediaTemplate /> 

    <Icon Id="ICON1.ICO" SourceFile="icon1.ico" /> 
    <Icon Id="ICON2.ICO" SourceFile="icon2.ico" /> 

    <Feature Id="ProductFeature" Title="WixSingleSetupExample" Level="1"> 
     <ComponentRef Id="ProductTextFile" /> 
    </Feature> 
    </Product> 

    <Fragment> 
    <Directory Id="TARGETDIR" Name="SourceDir"> 
     <Directory Id="DesktopFolder" Name="Desktop" /> 

     <Directory Id="ProgramMenuFolder" Name="Programs"> 
     <Directory Id="ApplicationProgramsFolder" Name="WixSingleSetup" /> 
     </Directory> 

     <Directory Id="ProgramFilesFolder"> 
     <Directory Id="INSTALLFOLDER" Name="WixSingleSetupExample" /> 
     </Directory> 
    </Directory> 
    </Fragment> 

    <Fragment> 
     <Component Id="ProductTextFile" Directory="INSTALLFOLDER" Guid="{GUID HERE}"> 
     <File Source="blankText.txt" KeyPath="yes"> 
      <Shortcut Id="desktopShortcut" Advertise="yes" Directory="DesktopFolder" 
        Name="WixSingleSetup Help" WorkingDirectory="INSTALLFOLDER" 
        Icon="ICON1.ICO" IconIndex="0" /> 

      <Shortcut Id="startMenuShotcut" Directory="ApplicationProgramsFolder" 
        Name="WiXSingleSetup Help" WorkingDirectory="INSTALLFOLDER" 
        Icon="ICON2.ICO" IconIndex="0" Advertise="yes" /> 
     </File> 

     <RemoveFolder Id="ProgramMenuDir" Directory="ApplicationProgramsFolder" On="uninstall"/> 
     </Component> 
    </Fragment> 
</Wix> 
Verwandte Themen