Wix:如何将'C:\Windows\hh.exe'作为CHM文件快捷方式图标的源?

Wix:如何将'C:\Windows\hh.exe'作为CHM文件快捷方式图标的源?,wix,shortcut,chm,Wix,Shortcut,Chm,我需要创建CHM文件的快捷方式。其图标可从C:\Windows\hh.exe文件中获取。图标属性需要组件的Id,但是hh.exe在我的MSI中不存在,因为它总是存在于C:\Windows\目录中。因此,它将不起作用: <Component Id="Help_default" Guid="{BE58A822-637E-4B58-B2AC-690BA9FDF833}"> <File Name="ProxyTools.chm" KeyPath="yes"> <

我需要创建CHM文件的快捷方式。其图标可从
C:\Windows\hh.exe
文件中获取。
图标
属性需要组件的
Id
,但是
hh.exe
在我的MSI中不存在,因为它总是存在于
C:\Windows\
目录中。因此,它将不起作用:

<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>
如何将
C:\Windows\hh.exe
作为CHM文件快捷方式图标的来源

UPD

我在我的WiX项目中添加了
hh.exe
,并添加了以下内容:

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


现在快捷方式是正确的。

Windows Installer无法实现这一点。要了解确切的功能集,必须检查基础表。首先,图标列是“其中一列的外部键”。图标表包含一个主键(由快捷方式表等引用)和一个二进制条目。二进制数据是要使用的图标数据


由于实际图标数据必须存储在生成的.msi数据库中,并且没有其他指定图标的方法,因此不能引用系统上可能已经存在的图标。您可以将所需的图标复制到图标表的资源中,但这是本机Windows Installer功能所能提供的最接近的功能。

Windows Installer无法做到这一点。要了解确切的功能集,必须检查基础表。首先,图标列是“其中一列的外部键”。图标表包含一个主键(由快捷方式表等引用)和一个二进制条目。二进制数据是要使用的图标数据


由于实际图标数据必须存储在生成的.msi数据库中,并且没有其他指定图标的方法,因此不能引用系统上可能已经存在的图标。您可以将所需的图标复制到图标表的资源中,但这是本机Windows Installer功能所能提供的最接近的功能。

除非现在您必须在重新分发hh.exe时咨询您的Windows EULA。我会查找许可证中包含的.ico文件。(然后意外地将其重命名为“hh.ico.exe”。)除非现在您必须在重新分发hh.exe时咨询您的Windows EULA。我会查找许可证中包含的.ico文件。(然后意外地将其重命名为“hh.ico.exe”。)
<Icon Id="hh.exe" SourceFile="hh.exe"/>