una - ¿Cómo puedo configurar un ícono para un archivo asimétrico usando WiX?
documento wix (3)
El archivo de instalación de mi aplicación se está generando con WiX. En la configuración de WiX estoy asociando un tipo de archivo que funciona con la aplicación. ¿Cómo puedo asociar un icono con este tipo de archivo en la configuración de WiX?
Así es como lo hice. Yo declare:
<Icon Id="Icon.exe" SourceFile="../Installer/Graph.ico" />
antes de </Product>
y lo agregó como 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>
DE: http://www.tramontana.co.hu/wix/lesson1.php#1.7
Si su aplicación maneja su propio tipo de datos de archivo, necesitará registrar una asociación de archivos para ello. 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: devolverá la ruta corta 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 a este tipo de archivo, debe especificar las entradas de registro apropiadas 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'' />
Recomiendo seguir mi publicación de desbordamiento de pila que se encuentra aquí por la forma más simple y elegante de insertar íconos en un recurso sin la necesidad de un proyecto de c ++ en una aplicación .NET administrada.
A continuación, aquí está la forma correcta de configurar esto a través de wix:
<Component Id="FileRegistration" Guid="MY_GUID">
<RegistryKey Root="HKCR" Key="." ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes">
<RegistryValue Value=".Document" Type="string" KeyPath="yes" />
<RegistryValue Name="Content Type" Value="application/" 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=".Document" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes">
<RegistryValue Value=" Document" Type="string" />
<RegistryKey Key="DefaultIcon" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes">
<RegistryValue Value="[INSTALLDIR]bin/.lib.dll, 1" Type="string" />
</RegistryKey>
<RegistryKey Key="Shell" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes">
<RegistryKey Key="openwebsite" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes">
<RegistryValue Value="Open " Type="string" />
<RegistryKey Key="command" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes">
<RegistryValue Value=""[INSTALLDIR].exe" /openwebsite "%1"" Type="string" />
</RegistryKey>
</RegistryKey>
</RegistryKey>
</RegistryKey>
</Component>
Este ejemplo registra el icono predeterminado para una extensión de archivo específica (.) que se encuentra en un ensamblaje desde el paso 1. También muestra cómo crear comandos de clic derecho asociados al Explorador de Windows y agrega un elemento de menú al Explorador de Windows Nuevo sub menú.
Gracias
-Blake Niemyjski