如何使用Wix将一组文件复制到多个位置?

时间:2009-10-13 02:22:40

标签: wix

我正在尝试进行安装,将相同文件的副本放在多个位置......

有一种简单的方法吗?

例如。如果我想将a.txt b.txt c.txt放入以下所有目录: -

\布拉赫\
\ Txts \
\实例\

2 个答案:

答案 0 :(得分:11)

只需创建引用同一文件的多个组件,但将其安装到不同的位置。唯一的问题是您不能使用引用同一文件的两个<File Source="somefile"/>元素,因为它们将获得相同的自动生成ID。明确地为文件元素提供不同的ID以避免该问题。

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

答案 1 :(得分:7)

Windows Installer有一个名为“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>