installer - una - ¿Cómo asociar la aplicación con tipos de archivos existentes usando el instalador de WiX en un instalador por usuario?
insertar un pdf en wix (2)
¿Cómo asociar la aplicación con tipos de archivos existentes usando el instalador de WiX? y ¿Cómo registrar tipos de archivos / extensiones con un instalador de WiX? .
¿Cómo puedo asociar la aplicación con los tipos de archivos existentes si la instalación es por usuario?
No se permite ninguna clave HKLM
Aquí vamos ... esto debería funcionar para las aplicaciones por usuario y dar la mayoría de las cosas agradables que estás buscando, excepto para iniciar> ejecutar, que es solo por máquina.
<Icon Id="filetype.ico" SourceFile="filetype.ico" />
<Component Id="MyApp.exe" Directory="APPLICATIONFOLDER" Guid="*">
<File Id="MyApp.exe" Name="MyApp.exe" KeyPath="yes"/>
<Shortcut Id="startmenuShortcut" Directory="ProgramMenuFolder" Name="MyApp" Icon="$(var.product).ico" IconIndex="0" WorkingDirectory="APPLICATIONFOLDER" Advertise="yes" />
<!-- Capabilities keys for Vista/7 "Set Program Access and Defaults" -->
<RegistryValue Root="HKCU" Key="SOFTWARE/MyApp/Capabilities" Name="ApplicationDescription" Value="!(loc.ApplicationDescription)" Type="string" />
<RegistryValue Root="HKCU" Key="SOFTWARE/MyApp/Capabilities" Name="ApplicationIcon" Value="[APPLICATIONFOLDER]MyApp.exe,0" Type="string" />
<RegistryValue Root="HKCU" Key="SOFTWARE/MyApp/Capabilities" Name="ApplicationName" Value="!(loc.ApplicationName)" Type="string" />
<RegistryValue Root="HKCU" Key="SOFTWARE/MyApp/Capabilities/DefaultIcon" Value="[APPLICATIONFOLDER]MyApp.exe,1" Type="string" />
<RegistryValue Root="HKCU" Key="SOFTWARE/MyApp/Capabilities/FileAssociations" Name=".xyz" Value="MyApp.Document" Type="string" />
<RegistryValue Root="HKCU" Key="SOFTWARE/MyApp/Capabilities/MIMEAssociations" Name="application/xyz" Value="MyApp.Document" Type="string" />
<RegistryValue Root="HKCU" Key="SOFTWARE/MyApp/Capabilities/shell/Open/command" Value=""[APPLICATIONFOLDER]MyApp.exe" "%1"" Type="string" />
<RegistryValue Root="HKCU" Key="SOFTWARE/RegisteredApplications" Name="MyApp" Value="SOFTWARE/MyApp/Capabilities" Type="string" />
<!-- Extend to the "open with" list + Win7 jump menu pinning -->
<RegistryValue Root="HKCR" Key="Applications/MyApp.exe/SupportedTypes" Name=".xyz" Value="" Type="string" />
<RegistryValue Root="HKCR" Key="Applications/MyApp.exe/shell/open" Name="FriendlyAppName" Value="!(loc.ApplicationName)" Type="string" />
<!-- MyApp.Document ProgID -->
<RegistryValue Root="HKCR" Key="MyApp.Document" Name="FriendlyTypeName" Value="!(loc.DescXYZ)" Type="string" />
<ProgId Id="MyApp.Document" Description="!(loc.DescXYZ)" Icon="filetype.ico" Advertise="yes">
<Extension Id="xyz">
<Verb Id="open" Command="!(loc.ExplorerMenuOpenXYZ)" Argument=""%1"" />
<MIME Advertise="yes" ContentType="application/xyz" Default="yes" />
</Extension>
</ProgId>
<!-- Optional: add an ''Edit with XYZ'' to ''right click'' even when not associated -->
<RegistryValue Root="HKCR" Key="SystemFileAssociations/.xyz/shell/edit.MyApp.exe" Value="!(loc.ExplorerMenuEditXYZ)" Type="string" />
<RegistryValue Root="HKCR" Key="SystemFileAssociations/.xyz/shell/edit.MyApp.exe/command" Value=""[APPLICATIONFOLDER]MyApp.exe" "%1"" Type="string" />
</Component>
Creo que esto no es realmente diferente del caso por máquina. Para downmarker (que está instalado por usuario) pongo esto en el componente que instala el ejecutable de la aplicación:
<!-- associate .md file extension with downmarker -->
<ProgId Id="DownMarker" Icon="downmarker.exe"
Description="Markdown Document">
<Extension Id="md" >
<Verb Id="open" Argument=""%1""
TargetFile="downmarker.exe" />
</Extension>
</ProgId>
O puede ver el archivo completo de wxs .