2016-09-08 3 views
1

В Wix проектов, которые вы обычно видите строкуЗачем нужна директория TARGETDIR?

<Directory Id="TARGETDIR" name="SourceDir"> 

Но почему нужно установить здесь name? Из того, что я понимаю, свойство name указывает имя сгенерированной папки на машине, выполняющей установку. Но папка SourceDir не будет создана, так зачем она нужна?

ответ

4

TARGETDIR играет особую роль в разрешении таблицы каталогов MSI-файла. В частности, он формирует корень исходных и целевых деревьев каталогов. Это указывается в файле MSI на нулевое значение в столбце Directory_Parent:

enter image description here

После разрешения каталога SourceDir будет указывать на путь, где MSI выполняется с. Кроме того, TARGETDIR будет родительской папкой для большинства встроенных каталогов Windows, таких как ProgramFilesFolder и ProgramMenuFolder, как показано на изображении выше.

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

Целевое местоположение - это полный путь установки для файла: C: \ Program Files \ My App (где файл идет). Исходное местоположение является полным исходным путем для файла: [SourceDir] Program Files \ My App (откуда идет файл).

Остановитесь, пожалуйста, дайте мне знать, если это неясно.

UPDATE: Оказалось, что этот вопрос задан раньше. Проверьте это сообщение для объяснения от создателя Wix Rob Mensching: In WiX files, what does Name="SourceDir" refer to?

Смежные вопросы