Копирование структуры каталогов с использованием wix - PullRequest
3 голосов
/ 24 мая 2011

Итак, у меня есть огромная файловая структура, которую я хочу, чтобы установщик, который я создаю с использованием wix, копировал в расположение клиента. В настоящее время я печатаю это как:

<Directory Id="xyz" Name = "abc FileSource = "sdfsdf">
    <Component Id="asdas" Guid="asdasd">
        <File Id = "asdfgrs" Name="name" />
    </Component>
</Directory>

Поскольку количество файлов увеличилось, я бы хотел, чтобы это делалось автоматически. Используя тепло я могу генерировать:

<ComponentGroup Id="weqw">
   <Component Id="2132312" Directory="Some random string (cause of concern>" Guid="asdasd">
        <File Id="sdqwdqwd> keyPath="yes" Source = "Correct source path" />
    </Component>
<ComponentGroup>

Меня беспокоит то, что из-за присутствия некоторой случайной строки в поле Каталога Компонента, сгенерированного нагревом, я не получу копию структуры каталога. Это правда? Есть ли способ обойти это?

1 Ответ

3 голосов
/ 24 мая 2011

Из вывода heat /?:

-dr      directory reference to root directories (cannot contains spaces 
         e.g. -dr MyAppDirRef)

Если вы используете высокую температуру для рекурсивного сбора структуры каталогов, то переключатель -dr установит идентификатор корневой целевой папки.Этот идентификатор должен совпадать с идентификатором Directory элемента, который вы указали в другом месте в ваших файлах wxs.

Для заготовленных подпапок heat все равно будет генерировать случайный идентификатор.Заданный идентификатор будет появляться несколько раз в сгенерированном XML-файле:

  1. В элементе Directory, созданном для данной подпапки с помощью Heat, как атрибут Id.

  2. В элементах Component, связанных с этой папкой, в качестве атрибута Directory.

Идентификатор используется только для связывания элементов Component с Directory элементов. Это не имя папки, которое отображается после установки. Оно используется только в качестве ключа в базе данных установщика Windows.

...