2016-06-06 1 views
1

Мне нужно создать ярлык для моего CHM-файла. Его значок должен быть получен из файла C:\Windows\hh.exe. Для атрибута Icon требуется компонент Id, но hh.exe отсутствует в моей MSI, поскольку он всегда существует в каталоге C:\Windows\. Поэтому он не будет работать:Wix: Как я могу указать «C: Windows hh.exe» в качестве источника значка для моего ярлыка CHM-файла?

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

Может быть, я должен указать как-то hh.exe как предмет

<Directory Id="WindowsFolder"/> 

Как я могу указать C:\Windows\hh.exe как источник значка для моего CHM-файл ярлыка?

UPD

Я добавил hh.exe в мой WiX проекта и прибавил:

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

Теперь ярлыки правильно.

+0

За исключением того, что вам нужно проконсультироваться с вашим лицензионным соглашением Windows при перераспределении hh.exe.I будет искать файл .ico, который распространяется на мои лицензии. (И затем переименуйте его, на удивление, «hh.ico.exe».) –

ответ

0

Установщик Windows не делает это возможным. Чтобы понять точный набор возможностей, вы должны изучить основные таблицы. Сначала столбец значков Shortcut table «Внешний ключ к столбцу один из Icon table». Таблица значков содержит первичный ключ (например, таблицу ярлыков и т. Д.) И двоичную запись. Бинарные данные - это данные значков для использования.

Поскольку фактические данные значков должны быть сохранены в результирующей базе данных .msi, и нет альтернативных способов указания значка, вы не можете ссылаться на значок, который может уже существовать в системе. Вы можете скопировать нужный значок в ресурс таблицы значков, но это как можно ближе к встроенной функции установщика Windows.

Смежные вопросы