Wix: How can I point `C:\Windows\hh.exe` as the source of the icon for my CHM-file shortcut?

依然范特西╮ 提交于 2019-12-11 12:56:27

问题


I need to create the shortcut to my CHM-file. Its icon are to be gotten from the C:\Windows\hh.exe file. The Icon attribute requires an Id of component, but hh.exe is absent in my MSI because it always exists in the C:\Windows\ directory. Therefore it will not work:

<Component Id="Help_default" Guid="{BE58A822-637E-4B58-B2AC-690BA9FDF833}">
  <File Name="ProxyTools.chm" KeyPath="yes">
    <Shortcut Id="ProxyTools.exe" Directory="ProgramMenuDir" 
              Name="ProxyTools (English)" 
              WorkingDirectory='INSTALLDIR' Advertise="yes" Icon="hh.exe" IconIndex="0"/>
  </File>
</Component>

Maybe I am to point somehow the hh.exe like the item of

<Directory Id="WindowsFolder"/>

How can I point C:\Windows\hh.exe as the source of the icon for my CHM-file shortcut?

UPD

I added hh.exe into my WiX project and added this:

<Icon Id="hh.exe" SourceFile="hh.exe"/>

Now shortcuts is right.


回答1:


Windows Installer does not make this possible. To understand the exact capability set, you must examine the underlying tables. First the Shortcut table Icon column is "The external key to column one of the Icon table." The Icon table contains a primary key (referred to by the shortcut table, among others) and a binary entry. The binary data is the icon data to use.

Since the actual icon data must be stored in the resulting .msi database, and there are no alternate ways to specify an icon, you cannot refer to an icon that may already exist on the system. You can copy the desired icon into a resource of the Icon table, but that's as close as you can come with native Windows Installer functionality.



来源:https://stackoverflow.com/questions/37655483/wix-how-can-i-point-c-windows-hh-exe-as-the-source-of-the-icon-for-my-chm-fi

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!