Модуль слияния WiX 3.0: значение атрибута Source - PullRequest
2 голосов
/ 17 мая 2010

Какова цель атрибута Source?Посмотрите на этот фрагмент:

<Component Id="MyComponent" Guid="123456789-abcd-defa-1234-DCEA-01234567890A">
          <File Id="myFile" Name="myFile.dll" Source="myFile.dll"/>
</Component>

Поскольку имя и источник имеют одинаковое значение, что добавляет источник?Код не компилируется без него.

Где я могу найти документацию, объясняющую эти атрибуты?Я пробовал MSDN для MSI, но не нашел ответа.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 18 мая 2010

WiX и MSI не совпадают. Следовательно нет ссылки в документации MSDN;)

Вам необходимо обратиться к WiX.CHM , где вы установили WiX, или к онлайн-документации по WiX .

Если вы говорите о File/@Name и File/@Source, это необязательно, если ваши исходные файлы расположены так же, как ваша структура каталогов WiX.

Изящная часть появляется, когда вы используете несколько -b аргументов для light и SourceDir в атрибуте File/@Source. Например ...

<File Id="example.dll" KeyPath="yes" Source="SourceDir\example.dll" DefaultLanguage="0" />

Я обычно указываю 4 папки с -b в моей стандартной сборке. Один для различных специальных ресурсов установщика, один для хранения модулей слияния, один для общих ресурсов между всеми моими установками и один для моих исходных файлов. Теперь WiX будет искать в каждом каталоге, указанном в командной строке, что делает вещи более переносимыми, если я собираюсь работать на другой системе с другим макетом каталога.

Согласно документации , если (в вашем примере) myfile.dll был в текущем каталоге, вы можете опустить атрибут File/@Source.

1 голос
/ 18 июля 2010

Файл / @ Source предоставляет место для получения информации о файле (размер, язык, хэш) и копирования его в правильное место (либо в шкафу, либо в каталоге относительно файла MSI). 1001 *

Файл / @ Имя не обязателен, если вы не хотите устанавливать файл с другим именем. Другими словами, если файл существует с правильным именем на вашем компьютере сборки, просто обратитесь к нему с помощью File / @ Source и оставьте флажок File/@Name.

.

File / @ Id также необязателен, если ваше имя файла уникально. У вас не может быть двух файлов с одинаковым File / @ Id, поэтому добавьте File / @ Id, если у вас есть коллизии.

В WiX v3.5 я часто просто делаю:

<Component> <File Source="my.exe"/> </Component>

...