Wix Installer - как я могу показать значение [Manufacturer] на пути установки?
Я пытаюсь создать установщик с пользовательским интерфейсом, используя WiX.
Мой INSTALLFOLDER настроен следующим образом:
<Directory Id="TARGETDIR"
Name="SourceDir">
<Directory Id="ProgramFiles64Folder">
<Directory Id="ManufacturerFolder"
Name="[Manufacturer]">
<Directory Id="INSTALLFOLDER"
Name="[ProductName]" />
</Directory>
</Directory>
</Directory>
В <Product> раздел, я определяю:
<UIRef Id="WixUI_InstallDir" />
<UIRef Id="WixUI_ErrorProgressText" />
<Property Id="WIXUI_INSTALLDIR"
Value="INSTALLFOLDER" />
Когда я запускаю установщик и перехожу на панель "Папка назначения", я вижу:
Install Service to:
C:\Program Files\[Manufacturer]\[ProductName]\
Как я могу оценить переменные для отображения?
Примечание: если я оставлю их, нажмите "Далее", "Установить и завершить". Это выглядит просто плохо.
Ответы
Ответ 1
Определите переменные в файле конфигурации.
Например, создайте файл с именем config.wxi, содержащий следующее:
<?xml version="1.0" encoding="utf-8"?>
<Include>
<?define Manufacturer = "Company Name" ?>
<?define ProductName = "Product Name" ?>
</Include>
Затем укажите переменные в вашем .wxs файле с помощью $(var.Manufacturer)
и $(var.ProductName)
.
Ответ 2
Переменные связующего могут сделать это очень легким, без необходимости вмешиваться в определение переменных препроцессора. Это было бы так:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFiles64Folder">
<Directory Id="ManufacturerFolder" Name="!(bind.property.Manufacturer)">
<Directory Id="INSTALLFOLDER" Name="!(bind.property.ProductName)" />
</Directory>
</Directory>
</Directory>
Синтаксис !(bind.)
описан в разделе Linker (light)
в WiX.chm.