Просто создать несколько компонентов которые ссылаются на один и тот же файл, но устанавливают его в разных местах. Единственная проблема заключается в том, что вы не можете использовать два элемента <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>
да, я kindda полагал, что я мог бы сделать это, но это болезненно, это означает отдельные идентификаторы и идентификаторы GUID и т. д. Другой вариант - это CopyFile, похоже, но тогда вам придется обрабатывать их удаление. –
. Вы также можете использовать те же компоненты в нескольких установщиках, которые каждый определяет ссылочный каталог по-разному. Но тогда вы получите несколько файлов MSI. Вы хотите, чтобы я подробно остановился на этом подходе? –
Я согласен с этим ответом, так как это было тем, что я делал эффективно. Мне не нравится идея всего дублирования, поэтому я закончил писать программу, которая создала Wix xml для меня и автоматически обрабатывала дублирование. Похоже, что wix слишком сырой, и для написания установщиков требуется более высокий уровень абстракции. –