Добавление ярлыка для файла WiX в другой фрагмент

StackOverflow https://stackoverflow.com/questions/2506247

  •  22-09-2019
  •  | 
  •  

Вопрос

Я использую Heat.exe для создания фрагментов, подобных этому:

<Fragment>
  <DirectoryRef Id="INSTALLDIR">
    <Component Id="id1" Guid="*">
      <File Id="fid1" KeyPath="yes" Source="SourceDir\Foo1.dll" />
    </Component>
    <Component Id="id2" Guid="*">
      <File Id="fid2" KeyPath="yes" Source="SourceDir\Foo2.dll" />
    </Component>
    <Component Id="id3" Guid="*">
      <File Id="fid3" KeyPath="yes" Source="SourceDir\Bar.exe" />
    </Component>
  </DirectoryRef>
</Fragment>

<Fragment>
    <ComponentGroup Id="Components">
        <ComponentRef Id="id1" />
        <ComponentRef Id="id2" />
        <ComponentRef Id="id3" />
    </ComponentGroup>
</Fragment>

Эти фрагменты хранятся в автоматически созданном файле wxs.

Затем я добавляю их в свою функцию (в основной файл WiX) следующим образом:

<ComponentGroupRef Id="Components"/>

Это работает нормально.

Однако я также хотел бы добавить ярлык Bar.exe в меню «Пуск».В идеале я хочу сделать это в своем основном файле Wix, при этом компонент Bar.exe все еще будет находиться в автоматически созданном файле wxs.Как бы я подошел к этой проблеме, не изменяя автоматически сгенерированный код?

Это было полезно?

Решение

Вы обязательно хотите, чтобы оно присутствовало в определении?Вы можете вынести его в отдельный компонент, как показано в руководстве: http://wix.sourceforge.net/manual-wix3/create_start_menu_shortcut.htm

В противном случае вам, вероятно, следует преобразовать тепловую мощность с помощью преобразования XSL, добавив туда определение.Heat.exe принимает переключатель для применения преобразования XSL сразу после сбора данных.

Надеюсь это поможет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top