Можно ли использовать переменные RegistrySearch вместе с SourceFile в ExePackage в Burn? - PullRequest
0 голосов
/ 21 января 2019

Программе, которую я разрабатываю, для работы требуется OBS Studio.Для удобства я создаю пакет Burn, который будет устанавливать каждую зависимость в правильном порядке перед установкой основного приложения.

Удаление - проблема.OBS имеет свой собственный исполняемый файл для удаления, и сообщить Burn, где находится этот исполняемый файл, оказалось невозможным.Каталог установки хорошо читается в реестре (OBS сохраняет каталог установки в качестве значения по умолчанию для ключа):

<util:RegistrySearch
 Variable="OBS"
 Root="HKLM"
 Key="SOFTWARE\WOW6432Node\OBS Studio" />

Но я не могу получить переменную в SourceFile из ExePackage, которая использовала бы ее при удалении,Следующий код потерпел неудачу в моих попытках:

<ExePackage Id="Uninstall_OBSStudio"
 SourceFile="!(wix.OBS)\uninstall.exe"
 DetectCondition="NOT OBS_exists"
 Cache="no"
 Compressed="no" />

Передача переменной как «[OBS]» также не удалась, читая как буквенную строку.Использование переменной в условиях работает без проблем, но это совсем не так.Я даже пытался передать значение в WixVariable, тоже:

<WixVariable Id="OBS_location" Value="[OBS]" />

Безрезультатно.Пока что это выглядит как util: RegistrySearch заблокирован в некоторых частях Burn, по причинам, которые я не понимаю.

Что я должен делать, чтобы использовать переменную RegistrySearch в строке SourceFile? Ничего из того, что я сделал для форматирования данных, не сработало.Может ли Burn даже передавать данные так, как я пытаюсь?Есть ли лучший способ извлечь информацию из реестра для цепочек записи?

Я действительно надеюсь, что это всего лишь синтаксическая проблема.Заранее благодарим за любые рекомендации, которые вы можете предоставить.

1 Ответ

0 голосов
/ 22 января 2019

Нет.Исходный файл для всех типов пакетов разрешается при сборке пакета.Во время выполнения Burn запишет файл, чтобы убедиться, что он запускает тот же файл, который был указан во время компиляции.

Здесь где-то есть запрос функции, возможно, либо новый тип пакета для созданной инфраструктуры установкиэтот установщик или возможность для ExePackage получить свою команду удаления из реестра.https://github.com/wixtoolset/issues/issues

...