В файлах WiX, что действительно Называет =, “SourceDir” относятся к?

Google Charts является отличным выбором, если Вы не хотите использовать Flash. Это довольно просто в использовании самостоятельно, но для направляющих, это еще легче с драгоценный камень gchartrb . Пример:

GoogleChart::PieChart.new('320x200', "Things I Like To Eat", false) do |pc| 
  pc.data "Broccoli", 30
  pc.data "Pizza", 20
  pc.data "PB&J", 40 
  pc.data "Turnips", 10 
  puts pc.to_url 
end

63
задан Stein Åsmul 9 September 2016 в 15:30
поделиться

2 ответа

из: http://robmensching.com/blog/posts/2010/1/26/stackovflow-what-does-nimesourceir-refer -Ва

Честно говоря, это то, что мы должны были скрыть от разработчика, но не сделали. Извиняюсь. Истина этого вопроса состоит в том, что установщик Windows ожидает, что дерево каталогов всегда будет укоренить в строке каталога, где первичный ключ (Directory / @ ID) - это «TargetSIR», а столбца по умолчанию (Directory / @ имя) - «SourcediR» Отказ

Во время установки TargetDir по умолчанию по умолчанию на самую большой диск на машине. SourcediR будет установлен на место, где выполняется MSI. Теперь SourcediR сложно после первоначальной установки, потому что он не будет установлен, если не вызывается действие Resolverce. Тем не менее, вы не хотите явно вызывать действие Resolverce, потому что, вероятно, предложит вам предоставить оригинальные исходные медиа (AKA: вставить компакт-диск, пожалуйста).

Что мы должны были выполнить в наборе WIX набора инструментов, удаляют необходимость указать пару TargetDir / Sourcedir и скажем, «любой элемент каталога, который не имеет родителей, не будет автоматически в целевой основе, потому что это то, что говорит MSI SDK». Вместо этого вы должны сделать это сами ... и некоторые Devs удивляются, что это все значит.

88
ответ дан 24 November 2019 в 16:22
поделиться

Из документации wix.chm, тема «Как: добавить файл в программу установки»:

Элемент с идентификатором TARGETDIR - требуется установщиком Windows и это корень всего каталога структуры для вашей установки

Согласно документации MSDN TARGETDIR - это

корневой целевой каталог для установка

Также согласно MSDN, SourceDir - это

корневой каталог, содержащий исходный CAB-файл или исходный файл дерево установочного пакета

Итак, свойство SourceDir указывает на реальный каталог: тот, где находится ваш файл MSI. Вы можете увидеть это в журнале установщика при установке с помощью msiexec / lvx * installer.log installer.msi .

Однако по какой-то причине SourceDir полностью игнорируется при разрешении TARGETDIR. TARGETDIR должен быть установлен явно (например, в командной строке), иначе он преобразуется в ROOTDRIVE. Если ROOTDRIVE не задан явно, то это корень диска с наибольшим объемом свободного места.

Быстрый тест показывает, что установка компонента в TARGETDIR действительно помещает файлы в корень моего диска D: \ вместо папка, в которой находится MSI.

21
ответ дан 24 November 2019 в 16:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: