2012-06-21 40 views
6

Tôi mới trên wix. Cần tạo lối tắt cho trang web địa phương.wix - biểu tượng phím tắt cho trang web

Nó hoạt động tốt và tạo shorcuts, nhưng nó không hiển thị bất kỳ biểu tượng trên menu bắt đầu và máy tính để bàn ... Trang web có tệp favicon và khi tôi mở trang web, tôi có thể thấy nó hoàn hảo nhìn thấy nó trong phím tắt. Tôi cố gắng để google nó nhưng tôi không tìm thấy một câu trả lời tốt cho util: InternetShortcut ..

Mã của tôi là:

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

Trả lời

1

InternetShortcut không hỗ trợ xác định một biểu tượng giống như một Shortcut bình thường. Có một số open feature request cho điều đó. Về mặt kỹ thuật, các lối tắt IUniformResourceLocator trong Windows không hỗ trợ các biểu tượng, mặc dù các phím tắt của IShellLink thực hiện.

+0

Có cách nào khác để xác định biểu tượng cho lối tắt đến trang web không? (Với wix) – TamarG

+1

Cách giải quyết có thể được mô tả trong yêu cầu tính năng @BobArnson được đề cập. –

+0

Cảm ơn tất cả, nó đã hoạt động :) – TamarG

0

Một chút chậm trả lời này, nhưng chỉ cần làm điều tương tự. Cách tiếp cận tôi lấy là sử dụng phần tử iniFile để viết ra một tệp url.

Hai điểm đáng chú ý với cách tiếp cận này:

  1. Kể từ khi shortcut trên desktop và các tập tin biểu tượng nằm ở đâu đó trên hệ thống tập tin, tôi cần thiết để tạo ra các thành phần riêng biệt để triển khai các tập tin biểu tượng.
  2. Nếu MSI chạy như một người dùng bình thường với UAC được bật, biểu tượng không được đặt cho lối tắt. Sau khi tôi tắt UAC trước khi cài đặt, biểu tượng đã được đặt chính xác.

    <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

Có một giải pháp dễ dàng hơn cho vấn đề đó. Thay vì sử dụng InternetShortcut, bạn chỉ có thể sử dụng Shortcut bình thường và sử dụng một thủ thuật để đặt đích là 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" có thể được đặt ở đâu đó trong thẻ Sản phẩm của bạn. "Lối tắt" nên được đặt thay vì "InternetShortcut". Điều quan trọng là phải có thuộc tính [URL] làm Mục tiêu. Là Thuộc tính, nó có thể là một url. Diretctly viết nó doese không hoạt động. Có thể có cảnh báo trong nhiệt/nến/ánh sáng, chúng có thể bị bỏ qua.

+0

Làm việc cho tôi, trông giống như giải pháp đơn giản nhất. –

+0

Yêu thích giải pháp thực sự dễ dàng này, cảm ơn bạn! – Anheledir

+0

Tuyệt vời. Cảm ơn. Cách tiếp cận này rõ ràng hơn nhiều so với 'util: InternetShortcut' mà tôi vừa mới mất 30 phút, cố gắng hiểu tại sao nó không tạo ra bất kỳ shortcut URL nào. – c00000fd

Các vấn đề liên quan