Después de una investigación adicional, me encontré con un parcial Responda a esta pregunta en el WiX Tutorial. Muestra una solución anunciada y no funciona con WiX 3.0, pero dada esa información, lo descubrí. Añadir un elemento ProgId al componente que contiene el ejecutable, como las siguientes:
<ProgId Id="MyApplication.MyFile" Description="My file type">
<Extension Id="myext" ContentType="application/whatever">
<Verb Id="open" Command="open" TargetFile="MyApplication.exe" Argument=""%1""/>
</Extension>
</ProgId>
myext es la extensión de archivo sin el punto, y MyApplication.exe es el identificador de archivo (no nombre) del archivo ejecutable (es decir, el Id atributo del elemento de archivo). Esto registrará el tipo de archivo con su ejecutable y proporcionará un ícono predeterminado (una página blanca con el icono de la aplicación en él), que es suficiente para mis necesidades. Si desea especificar un icono dedicado, parece que todavía tiene que hacer esto por sí mismo, como el siguiente (código del tutorial vinculado):
<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' />
no he encontrado una buena solución para mi pregunta extra, aunque .
Editar: Empecé a escribir esto antes de que llegara la respuesta anterior. Sin embargo, mi solución realmente funciona, en contraste con la respuesta anterior.
Esto no funciona. –
@VK: Sí. ¿Qué es exactamente lo que no parece funcionar para ti? El código similar está en producción desde 2008 aquí y nunca fue cambiado, y todavía funciona.Por otro lado, ahora puede usar Icon para una solución anunciada sin tener que instalar el archivo de icono (o simplemente use File si puede instalar el archivo o tenerlo en un ejecutable de todos modos). Entonces, ¿qué no funciona para ti aquí? – OregonGhost
Utilicé este código, pero mi aplicación no estaba configurada como aplicación predeterminada. –