2012-06-21 19 views
6

Soy nuevo en wix. Necesita crear un acceso directo a un sitio web local.wix - icono de acceso directo para el sitio web

Funciona bien y crea los shorcuts, pero no muestra ningún ícono en el menú de inicio y en el escritorio ... El sitio web tiene un archivo de favicon y cuando lo abro puedo verlo perfectamente - Simplemente no lo hago verlo en el atajo. Traté de google, pero no he encontrado una buena respuesta para util: InternetShortcut ..

Mi código es:

<DirectoryRef Id="ApplicationProgramsFolder"> 
    <Component Id="ApplicationShortcutBBBApp" Guid="---"> 
    <util:InternetShortcut Id="ApplicationStartMenuShortcutBBBApp" 
        Name="BBB" 
        Target="http://localhost/BBB"/> 
    <util:InternetShortcut Id="ApplicationDesktopShortcutBBBApp" 
        Name="BBB" 
        Directory="DesktopFolder" 
        Target="http://localhost/BBB"/> 
    <RegistryValue Root="HKCU" Key="Software\Microsoft\BBB" Name="installed" Type="integer" Value="1" KeyPath="yes"/> 
    </Component> 
</DirectoryRef> 

Respuesta

1

InternetShortcut no es compatible con la especificación de un icono como un acceso directo normal. Hay un open feature request para eso. Técnicamente, los accesos directos de IUniformResourceLocator en Windows no admiten íconos, aunque sí los accesos directos de IShellLink.

+0

¿Hay alguna otra manera de definir un icono para un acceso directo a un sitio web? (Con wix) – TamarG

+1

Una posible solución parece estar descrita en la solicitud de función @BobArnson mencionada. –

+0

Gracias a todos, funcionó :) – TamarG

0

Un poco tarde respondiendo esto, pero solo necesitaba hacer lo mismo. El enfoque que tomé fue usar el elemento iniFile para escribir un archivo url.

Dos puntos de interés con este enfoque:

  1. Desde el acceso directo está en el escritorio y el archivo de icono se encuentra en otra parte del sistema de archivos, que necesitaba para crear componentes separados para desplegar el archivo de icono.
  2. Si el MSI se ejecuta como un usuario normal con UAC activado, el icono no está configurado para el acceso directo. Una vez que desactivé el UAC antes de la instalación, el icono se configuró correctamente.

    <Fragment> 
    <DirectoryRef Id="DesktopFolder"> 
        <Component Id="ProductInternetShortcut" Guid="{YOUR_GUID_HERE}" > 
         <IniFile Id="url_name" 
          Action="addLine" 
          Directory="DesktopFolder" 
          Section="InternetShortcut" 
          Name="ProductInternetShortcut.url" 
          Key="URL" 
          Value="https://my.url.com/" /> 
    
         <IniFile Id="url_target" 
          Action="addLine" 
          Directory="DesktopFolder" 
          Section="InternetShortcut" 
          Name="ProductInternetShortcut.url" 
          Key="Target" 
          Value="https://my.url.com/" /> 
    
         <IniFile Id="url_idlist" 
          Action="createLine" 
          Directory="DesktopFolder" 
          Section="InternetShortcut" 
          Name="ProductInternetShortcut.url" 
          Key="IDList" 
          Value=" " /> 
    
         <IniFile Id="url_HotKey" 
          Action="addLine" 
          Directory="DesktopFolder" 
          Section="InternetShortcut" 
          Name="ProductInternetShortcut.url" 
          Key="HotKey" 
          Value="0" /> 
    
         <IniFile Id="url_icon" 
          Action="addLine" 
          Directory="DesktopFolder" 
          Section="InternetShortcut" 
          Name="ProductInternetShortcut.url" 
          Key="IconFile" 
          Value="PATH_TO_ICON_FILE_ON_WORKSTATION" /> 
    
         <IniFile Id="url_iconIndex" 
          Action="addLine" 
          Directory="DesktopFolder" 
          Section="InternetShortcut" 
          Name="ProductInternetShortcut.url" 
          Key="IconIndex" 
          Value="0" /> 
    
         <RegistryValue Root="HKCU" Key="Software\COMPANY\PRODUCT" Name="installed" Type="integer" Value="1" KeyPath="yes" /> 
        </Component> 
    </DirectoryRef> 
    <DirectoryRef Id="ProductFolder"> 
        <Component Id="ShortcutIcons" Guid="{YOUR_GUID_HERE}"> 
         <File Id="filProductIcons" KeyPath="yes" Source="PATH_TO_ICON_FILE_ON_DEVELOPER_MACHINE" /> 
        </Component> 
    </DirectoryRef> 
    </Fragment> 
    
13

hay una solución fácil para este problema. En lugar de usar InternetShortcut, puedes usar el acceso directo normal y usar un truco para establecer que el objetivo sea una url.

<SetProperty Id="URL" Value="http://yourpage.com" Sequence="execute" Before="CreateShortcuts" /> 


<Shortcut Directory="DesktopFolder" Id="WebShortcut" Name="Your Page" Description="Your Page Description" Target="[URL]" Icon="IconDesktop"> 
    <Icon Id="IconDesktop" SourceFile="images\icon.ico" /> 
</Shortcut> 

"SetProperty" se puede colocar en algún lugar de su etiqueta de producto. Se debe colocar "Acceso directo" en lugar de "Interrumpir por Internet". Es importante tener la propiedad [URL] como destino. Como propiedad, puede ser una url. Directamente escrito, no funciona. Puede haber advertencias en calor/velas/luz, se pueden ignorar.

+0

Funcionó para mí, parece ser la solución más fácil. –

+0

Me encanta esta solución realmente fácil, ¡gracias! – Anheledir

+0

Impresionante. Gracias. Este enfoque es mucho más claro que 'util: InternetShortcut' que acabo de matar 30 minutos, tratando de entender por qué no crea ningún atajo de URL. – c00000fd

Cuestiones relacionadas