2009-03-12 11 views

Respuesta

6

Así es como lo hice. Declaré:

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

antes </Product> y añadió como una referencia de la siguiente manera:

<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 la aplicación se encarga de su propio tipo de datos de archivo, tendrá que registrar una asociación de archivos para él. Ponga un ProgId dentro de su componente. FileId debe hacer referencia al atributo Id del elemento File que describe el archivo destinado a manejar los archivos de esta extensión. Tenga en cuenta el signo de exclamación: se devolverá el camino corto del archivo en lugar de la larga:

<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> 

Para asignar un icono para este tipo de archivo, tiene que especificar el registro correspondiente entradas a sí mismo dentro de su componente:

<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

Y qué hace el Foobar.exe interior Valor = '[INSTALLDIR] Foobar.exe, 1' /> refiere? ¿Y dónde reside? – Filip

+0

el enlace está muerto – DonDon

0

Me gustaría recomendar siguiente mi puesto de desbordamiento de pila situada here de la manera más simple y más elegante de la incorporación de iconos en un recurso sin la necesidad de un proyecto de C++ en una aplicación .NET administrada.

A continuación, aquí es la forma correcta de establecer este a través de 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> 

Esta muestra se registra el icono predeterminado para una extensión de archivo específico (.stackoverflow) que se encuentra en un ensamblado desde el paso 1. Se también muestra cómo crear comandos de clic derecho asociados al Explorador de Windows y agrega un elemento de menú al submenú Nuevo del Explorador de Windows.

Gracias

-Blake Niemyjski

+0

Este código funciona a partir de WIX 3.6 ... –

Cuestiones relacionadas