Добавление ярлыка для файла WiX в другом фрагменте - PullRequest
5 голосов
/ 24 марта 2010

Я использую 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. Как бы я подошел к этой проблеме без изменения автоматически сгенерированного кода?

1 Ответ

2 голосов
/ 24 марта 2010

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

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

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

...