с использованием Wix 3.11, проект построен с использованием msbuild 14.0.25420.1
Я столкнулся с ситуацией, когда строка, которую я определяю в переменной процессора, имеет заключительные кавычки, включенные в значение переменной.
Буду признателен, если кто-нибудь скажет мне:
- почему возникает такое поведение (я что-то не так делаю?)
- как я бы процитировал строковое значение с пробелами
В проекте есть главный файл .wxs и несколько файлов .wxi Include.
В главном Product.wxs в элементе Wix:
<?define registry_key_path="SOFTWARE\MySoftwareGroup\MySoftware" ?>
Затем во включаемом файле Component.wxi внутри элемента Component:
<RegistryValue
Root="HKLM"
Key="$(var.registry_key_path)"
Name="InstallFolder"
Value="[INSTALLDIR]"
Type="string" />
Установка завершается ошибкой:
Ошибка 1406. Не удалось записать значение InstallFolder в раздел \ "SOFTWARE \ MySoftwareGroup \ MySoftware".
Вы можете видеть, что ключ содержит кавычки. Его следует читать:
\ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ MySoftwareGroup \ MySoftware
Если я удалю кавычки из определения:
<?define registry_key_path=SOFTWARE\MySoftwareGroup\MySoftware ?>
установщик правильно анализирует переменную, находит нужный раздел реестра и записывает в него.
Почему включены цитаты?
Как мне указать строковое значение в кавычки, если оно содержит пробел?