2016-05-10 14 views
1

С моим установщиком WiX мне нужно заменить существующий установщик.Чтение значения ini в загрузочном буфере WiX (Запись)

Текущий установщик записывает номер версии и некоторые другие вещи в файл .ini. Когда запускается установщик WiX, я должен отображать текущую версию и версию для установки.

теперь у меня есть следующие за страницу установки:

<Page Name="Install"> 
    <Text X="11" Y="-73" Width="246" Height="17" FontId="3">Currently installed version:</Text> 
    <Text X="11" Y="-73" Width="246" Height="17" FontId="3">CURRENT VERSION</Text> 
    <Text X="11" Y="-73" Width="246" Height="17" FontId="3">Version to be installed:</Text> 
    <Text X="11" Y="-73" Width="246" Height="17" FontId="3">#(loc.InstallVersion)</Text> 
    <Button Name="InstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.InstallInstallButton)</Button> 
    <Button Name="WelcomeCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.InstallCloseButton)</Button> 
</Page> 

Это успешно отображает версию, которая будет установлена. Но я хочу также отобразить текущую версию.

Мой установщик записывает версию в реестр и ini-файл. Это должно быть сделано, поскольку программное обеспечение также использует ini-файл.

Так что мой вопрос: Как узнать значение ini с помощью BootStrapper WiX (Burn)?

+0

Возможно, вам придется самостоятельно создать (или отредактировать wixstdba) bootstrapperapplication, чтобы прочитать ini-файл и установить переменные или написать собственное расширение для чтения ini-файлов. Может, кто-то уже написал расширение? –

ответ

1

Вы можете написать свою собственную библиотеку CustomAction (на C++ или .NET), которая будет читать файл .ini, проанализировать его и предоставить новые свойства движку MSI.

Если вы должны настроить Burnstrapper и не можете сделать это с помощью CustomAction в MSI, вы должны создать свое собственное приложение Boostrapper с помощью WiX BA SDK.

+0

Ответ хороший, хотя я теперь использовал файл bat, который, кажется, намного быстрее –

1

Поскольку у вас есть значение реестра, используйте RegistrySearch, чтобы прочитать значение реестра в переменной, а затем [VariableName], чтобы отобразить значение. Запись не поддерживает прямое чтение файлов .ini.