Как вы копируете набор файлов в несколько мест, используя Wix?

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

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

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

. \ Blah \
. \ Txts \
. \ Examples \

10 wix
13.10.2009 02:22:39
2 ОТВЕТА
РЕШЕНИЕ

Просто создайте несколько компонентов, которые ссылаются на один и тот же файл, но установите его в разных местах. Единственный недостаток в том, что вы не можете использовать два <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>
12
13.12.2015 13:29:55
да, я вроде решил, что мог бы это сделать, но это болезненно, это означает, что отдельные идентификаторы и GUID, и т. д. и т. д. Другой вариант, кажется, CopyFile, но тогда вам придется справиться с их удалением
Keith Nicholas 13.10.2009 20:33:14
Вы также можете использовать одни и те же компоненты в нескольких установщиках, каждый из которых определяет каталог, на который ссылаются, по-разному. Но тогда вы получите несколько файлов MSI. Хотели бы вы, чтобы я подробно остановился на этом подходе?
Wim Coenen 13.10.2009 23:09:10
Я приму этот ответ, так как именно это я и сделал в итоге. Мне не нравится идея всего дублирования, поэтому я написал программу, которая сгенерировала для меня Wix xml и автоматически обработала дублирование. Кажется, что wix слишком сырой, и для написания инсталляторов необходим более высокий уровень абстракции.
Keith Nicholas 18.10.2009 20:14:26
@WimCoenen Как это влияет на размер установки?
Sergei Golos 17.07.2012 21:11:21
@SergeiGolos: он не увеличивает размер, интеллектуальная разводка гарантирует, что содержимое файла будет включено только один раз.
Wim Coenen 18.07.2012 09:13:59

Установщик 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>
7
22.12.2014 11:55:49
Да, это действительно так - пока компонент, который сделал дублирование, удаляется (это может быть не так, если он был установлен постоянным).
Stein Åsmul 14.10.2009 14:44:06
Когда элемент File имеет condition, CopyFile также проверит условие?
KargWare 7.04.2020 07:22:25