Как скопировать набор файлов в несколько мест с помощью Wix?

Я пытаюсь сделать установку, которая помещает копию одних и тех же файлов в несколько мест...

есть ли простой способ сделать это?

например. если бы я хотел поместить файл c.txt a.txt b.txt во все следующие каталоги: -

.\Ла\
. \Txts\
.\Примеры\

Ответ 1

Просто создайте несколько компонентов, которые ссылаются на один и тот же файл, но установите его в разные местоположения. Единственная проблема заключается в том, что вы не можете использовать два элемента <File Source="somefile"/>, ссылающихся на один и тот же файл, потому что они получат одинаковый автогенерированный идентификатор. Явно предоставить идентификаторы файлов различным идентификаторам, чтобы избежать этой проблемы.

<DirectoryRef Id="directory1">
   <Component Id="somefile-component1">
      <File Id="somefile-id1" Source="/path/to/somefile"/>
   </Component>
</DirectoryRef>

<DirectoryRef Id="directory2">
   <Component Id="somefile-component2">
      <File Id="somefile-id2" Source="/path/to/somefile"/>
   </Component>
</DirectoryRef>

Ответ 2

У установщика Windows есть своя концепция для этого, называемая "DuplicateFiles". Он работает только в том случае, если файлы на самом деле идентичны, но это похоже на то, что вы хотите. В WIX вы реализуете это через элемент CopyFile:

http://wix.sourceforge.net/manual-wix2/wix_xsd_copyfile.htm

Я на самом деле не пробовал, но он должен выглядеть примерно так.

<Component Id='Manual' Guid='*' >
  <File Id='Manual' Name='Manual.pdf' Source='Manual.pdf' KeyPath='yes'>
    <CopyFile  Id='MyDuplicateFile1' DestinationProperty ='DesktopFolder'/>
  </File>
</Component>