2009-03-12 7 views

Répondre

6

Voici comment je l'ai fait. Je déclarai:

<Icon Id="Icon.exe" SourceFile="..\Installer\Graph.ico" /> 

avant </Product> et ajouté comme référence comme suit:

<ProgId Id='myApp.exe' Description='Some description' Advertise='yes' Icon='Icon.exe'> 
      <Extension Id='xyz' ContentType='application/text'> 
      <Verb Id='open' Sequence='10' Command='Open' Argument='"%1"' /> 
      </Extension> 
</ProgId> 
7

DE: http://www.tramontana.co.hu/wix/lesson1.php#1.7

Si votre application gère son propre type de données de fichiers, vous devez vous inscrire une association de fichier pour elle. Mettez un ProgId dans votre composant. FileId doit se référer à l'attribut Id de l'élément File décrivant le fichier destiné à gérer les fichiers de cette extension. Notez le point d'exclamation: il retourne le chemin court du fichier au lieu de la longue:

<ProgId Id='AcmeFoobar.xyzfile' Description='Acme Foobar data file'> 
    <Extension Id='xyz' ContentType='application/xyz'> 
    <Verb Id='open' Sequence='10' Command='Open' Target='[!FileId]' Argument='"%1"' /> 
    </Extension> 
</ProgId> 

Pour attribuer une icône à ce type de fichier, vous devez spécifier le registre approprié vous entrées dans votre composant:

<Registry Id='FooIcon1' Root='HKCR' Key='.xyz' Action='write' 
    Type='string' Value='AcmeFoobar.xyzfile' /> 
<Registry Id='FooIcon2' Root='HKCR' Key='AcmeFoobar.xyzfile' Action='write' 
    Type='string' Value='Acme Foobar data file' /> 
<Registry Id='FooIcon3' Root='HKCR' Key='AcmeFoobar.xyzfile\DefaultIcon' Action='write' 
    Type='string' Value='[INSTALLDIR]Foobar.exe,1' /> 
+1

Et qu'est-ce que la valeur Foobar.exe intérieur = '[INSTALLDIR] Foobar.exe, 1' /> référence? Et où réside-t-il? – Filip

+0

le lien est mort – DonDon

0

Je vous recommande la suite de ma pile poste de débordement situé here de la façon la plus simple et la plus élégante d'icônes intégration dans une ressource sans avoir besoin d'un projet C++ dans une application .NET gérée.

Ensuite, voici la bonne façon de régler ce via Wix:

<Component Id="stackoverflowFileRegistration" Guid="MY_GUID"> 

    <RegistryKey Root="HKCR" Key=".stackoverflow" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes"> 
     <RegistryValue Value="stackoverflow.Document" Type="string" KeyPath="yes" /> 
     <RegistryValue Name="Content Type" Value="application/stackoverflow" Type="string" /> 
     <RegistryKey Key="ShellNew" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes"> 
     <RegistryValue Name="NullFile" Value="" Type="string" /> 
     <RegistryValue Name="Data" Value="Default new document Content.. NOTE: you must use a MutiStringValue nodes for multi-line content...." Type="string"/> 
     </RegistryKey> 
    </RegistryKey> 

    <RegistryKey Root="HKCR" Key="stackoverflow.Document" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes"> 
     <RegistryValue Value="stackoverflow Document" Type="string" /> 

     <RegistryKey Key="DefaultIcon" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes"> 
     <RegistryValue Value="[INSTALLDIR]bin\stackoverflow.lib.dll, 1" Type="string" /> 
     </RegistryKey> 

     <RegistryKey Key="Shell" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes"> 
     <RegistryKey Key="openstackoverflowwebsite" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes"> 
      <RegistryValue Value="Open Stackoverflow" Type="string" /> 
      <RegistryKey Key="command" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes"> 
      <RegistryValue Value="&quot;[INSTALLDIR]stackoverflow.exe&quot; /openwebsite &quot;%1&quot;" Type="string" /> 
      </RegistryKey> 
     </RegistryKey> 
     </RegistryKey> 

    </RegistryKey> 
    </Component> 

Cet exemple enregistre l'icône par défaut pour une extension de fichier spécifique (.stackoverflow) qui est situé dans un ensemble de l'étape 1. montre également comment créer des commandes de clic droit associées à Windows Explorer et ajoute un élément de menu au sous-menu Windows Explorer New.

Merci

-Blake Niemyjski

+0

Ce code fonctionne à partir de WIX 3.6 ... –

Questions connexes