【问题标题】:wix - shortcut icon for websitewix - 网站的快捷方式图标
【发布时间】:2012-06-23 17:53:37
【问题描述】:

我是 wix 新手。需要创建本地网站的快捷方式。

它工作正常并创建了快捷方式,但它没有在开始菜单和桌面上显示任何图标...该网站有 favicon 文件,当我打开该网站时,我可以完美地看到它 - 我只是看不到它在快捷方式中。我试图用谷歌搜索它,但我没有找到 util:InternetShortcut 的好答案..

我的代码是:

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

【问题讨论】:

    标签: wix shortcut favicon


    【解决方案1】:

    对于这个问题有一个更简单的解决方案。除了使用 InternetShortcut,您还可以使用普通快捷方式并使用技巧将目标设置为 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”可以放置在您的产品标签中的某个位置。 应放置“快捷方式”而不是“InternetShortcut”。 将属性 [URL] 作为目标很重要。作为一个属性,它可以是一个 url。直接写的不行。 加热/蜡烛/灯光可能会有警告,可以忽略。

    【讨论】:

    • 为我工作,看起来是最简单的解决方案。
    • 太棒了。谢谢。这种方法比我刚刚杀死 30 分钟的util:InternetShortcut 清晰得多,试图理解它为什么不创建任何 URL 快捷方式。
    【解决方案2】:

    InternetShortcut 不支持像普通快捷方式那样指定图标。有一个open feature request。从技术上讲,Windows 中的 IUniformResourceLocator 快捷方式不支持图标,但 IShellLink 快捷方式支持。

    【讨论】:

    • 还有其他方法可以为网站的快捷方式定义图标吗? (用蜡)
    • @BobArnson 提到的功能请求中似乎描述了一种可能的解决方法。
    • Internet 快捷方式确实支持图标,但它们是通过IPropertySetStorage 界面而不是IUniformResourceLocator 来支持的。见msdn.microsoft.com/en-us/library/…
    【解决方案3】:

    回答这个问题有点晚了,但只需要做同样的事情。我采取的方法是使用iniFile元素写出一个url文件。

    这种方法的两个兴趣点:

    1. 由于快捷方式在桌面上,而图标文件位于文件系统的其他位置,我需要创建单独的组件来部署图标文件。
    2. 如果在打开 UAC 的情况下以普通用户身份运行 MSI,则不会为快捷方式设置图标。一旦我在安装之前禁用了 UAC,图标就设置正确了。

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

    【讨论】:

      【解决方案4】:

      在 Wix 中,您可以通过 InternetShortcut Element (Util Extension) 创建带有图标的 Internet 快捷方式。

      以下是我正在开发的应用程序示例,该应用程序通过&lt;InternetShorcut&gt; 元素添加指向带有图标的网站的链接,并将该链接放置在桌面和开始菜单上。

      注意,您可能必须将“util”前缀放在元素名称前面,尽管我不必这样做:&lt;util:InternetShortcut&gt;

      <Directory Id="ProgramMenuFolder" Name="ProgramMenuFolder">
          <Directory Id="ProgramMenuFolder.MyApplicationName" Name="MyApplicationName">
              <Component Id="Component.Uninstall" Guid="215c7bec-7967-43e6-8f01-72c27fbb2a98">
                  <CreateFolder/>
                  <RemoveFolder Id="ProgramMenuFolder.MyApplicationName" On="uninstall"/>
                  <RegistryKey Root="HKCU" Key="Software\MyCompany\MyApplicationName">
                      <RegistryValue Value="0" Type="string" KeyPath="yes"/>
                  </RegistryKey>
              </Component>
              <Component Id="InternetShortcut" Guid="215c7bec-7967-43e6-8f01-72c22e505f09">
                  <InternetShortcut 
                      IconFile="[INSTALLDIR]\icon.ico" 
                      IconIndex="0" 
                      Name="Admin Page" 
                      Id="InternetShortcut" 
                      Target="http://localhost:4444" 
                      Type="link" 
                      xmlns="http://schemas.microsoft.com/wix/UtilExtension"/>
                  <CreateFolder/>
                  <RegistryKey Root="HKCU" Key="Software\MyCompany\MyApplicationName">
                      <RegistryValue Value="0" Type="string" KeyPath="yes"/>
                  </RegistryKey>
              </Component>
          </Directory>
      </Directory>
      <Directory Id="DesktopFolder" Name="DesktopFolder">
          <Component Id="InternetShortcut.1" Guid="B27DF351-6EDA-4BEF-A3AC-F12313260203">
              <InternetShortcut
                  IconFile="[INSTALLDIR]\icon.ico" 
                  IconIndex="0" 
                  Name="Admin Page" 
                  Id="InternetShortcut.1" 
                  Target="http://localhost:4444" 
                  Type="link" 
                  xmlns="http://schemas.microsoft.com/wix/UtilExtension"/>
              <CreateFolder/>
              <RegistryKey Root="HKCU" Key="Software\MyCompany\MyApplicationName">
                  <RegistryValue Value="0" Type="string" KeyPath="yes"/>
              </RegistryKey>
          </Component>
      </Directory>
      <Feature Id="Complete" Title="Complete" Absent="allow" Level="1">
          <ComponentRef Id="InternetShortcut"/>
          <ComponentRef Id="InternetShortcut.1"/>
      </Feature>
      

      另外,请参阅How To: Create a Shortcut to a Webpage

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多