69 votes

Créer un raccourci sur le bureau à l'aide de WiX

J'ai donc ce projet d'installation dans Wix et je voulais avoir un raccourci sur le bureau. Ce doit être facile que vous pourriez penser. Mais ce n'est pas le cas. Tous les extraits de code trouvé sur Internet n'a pas fonctionné. Après quelques heures de galère et de la lecture de la documentation j'ai finalement obtenu le droit, donc je le partage avec vous ici.

94voto

Raymond Holmboe Points 448

Le raccourci est un processus non annoncé un, espérons que cela aide quelqu'un. Rappelez-vous le mettez dans votre fonction de balise.

<Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="DesktopFolder" Name="Desktop">
        <Component Id="ApplicationShortcutDesktop" Guid="*">
          <Shortcut Id="ApplicationDesktopShortcut"
             Name="Text under your icon"
             Description="Comment field in your shortcut"
             Target="[MYAPPDIRPROPERTY]MyApp.exe"
             WorkingDirectory="MYAPPDIRPROPERTY"/>
          <RemoveFolder Id="DesktopFolder" On="uninstall"/>
          <RegistryValue
            Root="HKCU"
            Key="Software/MyAppName"
            Name="installed"
            Type="integer"
            Value="1"
            KeyPath="yes"/>
        </Component>
      </Directory>
        <Directory Id="ProgramFilesFolder" Name="PFiles">
          <Directory Id="MyCompany" Name="MyCompany">
            <Directory Id="MYAPPDIRPROPERTY" Name="MyAppName">
          </Directory>
        </Directory>
      </Directory>

32voto

Sean Hall Points 2011

Je pense que mon chemin est plus facile, pas besoin de vous pour créer une clé de registre:

<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="DesktopFolder" SourceName="Desktop" />
  <Directory Id="MergeRedirectFolder">
    <Component Id="MyExeComponent" Guid="{PUT-GUID-HERE}">
      <File Id="MyExeFile" Source="$(var.ExeSourcePath)" KeyPath="yes">
        <Shortcut
          Id="DesktopShortcut"
          Directory="DesktopFolder"
          Name="$(var.ShortcutName)"
          WorkingDirectory="MergeRedirectFolder" />
      </File>
    </Component>
  </Directory>
</Directory>

19voto

Dimitry Points 36

Merci pour l'exemple. Dans WIX 3.8 elle suscite: "Erreur 3 ICE43: Composant ... a non annoncé raccourcis. Il doit utiliser une clé de registre sous HKCU que son chemin d'accès clé, pas un fichier."

Alors, j'ai fait de cette façon dans un fichier avec les fonctionnalités suivantes:

   <Component Id="cmp79F6D61F01DD1060F418A05609A6DA70" 
              Directory="dirBin" Guid="*">
      <File Id="fil34B100315EFE9D878B5C2227CD1454E1" KeyPath="yes"
            Source="$(var.SourceDir)\FARMS.exe" >
        <Shortcut Id="DesktopShortcut"
                  Directory="DesktopFolder"
                  Name="FARMS $(var.FarmsVersion)"
                  Description="Local Land Services desktop application"
                  WorkingDirectory="INSTALLFOLDER"
                  Icon="FARMS.exe"
                  IconIndex="0"
                  Advertise="yes" >
           <Icon Id="FARMS.exe" SourceFile="$(var.SourceDir)\FARMS.exe" />
        </Shortcut>
        </File>
    </Component>

Et mentionné bureau dossier dans un fichier de définition de produit:

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

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X