#user-interface #wix #bootstrapper
#пользовательский интерфейс #wix #bootstrapper
Вопрос:
Я создаю установщик языкового пакета с помощью WIX. Я почти закончил, кроме одного. Когда более новая версия установщика запускается после установки старой версии того же установщика, кнопка установки по-прежнему показывает «Установить», но я ожидаю, что она покажет «Обновить», когда запущен новый установщик. После установки нового установщика была установлена новая версия, а старая версия была удалена. Это означает, что аспект функции обновления выполнен. Но я надеюсь, что пользовательский интерфейс, особенно текст кнопки, может быть изменен соответствующим образом.
Я использую проект начальной загрузки для объединения файла языкового пакета msi, который создается из проекта установки wix, и использую стандартный пользовательский интерфейс «WixStandardBootstrapperApplication», связанный с XML-файлом определения пользовательского интерфейса. Я попытался добавить страницу «Обновить» в XML-файл определения пользовательского интерфейса, у меня это не работает, и я не знаю, как определить процесс обновления в проекте начальной загрузки. Вот мой код.
<BootstrapperApplicationRef
Id="WixStandardBootstrapperApplication.HyperlinkLicense">
<bal:WixStandardBootstrapperApplication
LicenseUrl=""
ThemeFile="HyperlinkTheme.xml"
LocalizationFile="HyperlinkTheme.wxl"
LogoFile="Logo128.jpg"
SuppressOptionsUI="yes" />
</BootstrapperApplicationRef>
<Chain>
<MsiPackage Id="InstallationMSI"
SourceFile="......LanguageSetupV3binDebugen-usLanguagePackage.msi"
EnableFeatureSelection="yes"
DisplayInternalUI="no"
Compressed="default"
Description="[UpgradeByUninstallInstall][IsTypicalInstall]"
/>
</Chain>
<Page Name="Install">
<Text X="11" Y="121" Width="-11" Height="51" FontId="3" DisablePrefix="yes">#(loc.InstallMessage)</Text>
<!--<Hypertext Name="EulaHyperlink" X="11" Y="121" Width="-11" Height="51" TabStop="yes" FontId="3" HideWhenDisabled="yes">#(loc.InstallLicenseLinkText)</Hypertext>
<Checkbox Name="EulaAcceptCheckbox" X="-11" Y="-41" Width="260" Height="17" TabStop="yes" FontId="3" HideWhenDisabled="yes">#(loc.InstallAcceptCheckbox)</Checkbox> -->
<Button Name="OptionsButton" X="-171" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" HideWhenDisabled="yes">#(loc.InstallOptionsButton)</Button>
<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.InstallCancelButton)</Button>
</Page>
Я хочу знать, как определить процесс обновления в проекте начальной загрузки и как изменить текст кнопки в соответствии со значением свойства. Или как я могу найти свойство или переменную, чтобы указать разницу между процессом установки и обновления. Любые ссылки, учебные пособия или предложения, связанные с этим, были бы признательны.
Комментарии:
1. Какая версия у вас есть внутри
Bundle
элемента? Попробуйте увеличить его в новом установщике (имейте в виду, что MSI использует только 3 первые цифры в версии)2. Я использую версию проекта начальной загрузки V3, а 1.26.3.1 — мою старую версию установщика. Новейшая версия установщика 1.26.4.3 в элементе пакета. Да, я увеличил 3-значный номер версии пакета MSI и сохранил тот же номер версии в проекте начальной загрузки. Но при запуске моего нового установщика в пользовательском интерфейсе нет никаких изменений. Кнопка по-прежнему отображает «Установить».
Ответ №1:
В WixStdBA не определена отдельная кнопка обновления. Кажется, что единственной кнопкой { WIXSTDBA_CONTROL_INSTALL_BUTTON, L»InstallButton» } для начала установки. В исходном коде WixStdBA я не нашел кнопки с именем «…ОБНОВЛЕНИЕ …» Для обновления пакета новый пакет должен иметь более высокий номер версии, как уже обсуждалось выше, и код обновления пакета должен быть постоянным. Мне кажется, что может потребоваться взять исходный код WixStdBA и изменить его таким образом, чтобы он обнаруживал наличие любых предыдущих установок с тем же идентификатором GUID пакета, и изменить код, чтобы он отображал другой текст кнопки в зависимости от состояния установки.
Комментарии:
1. Я вполне согласен с вами. Но теперь я пытаюсь найти способ расширить пользовательское приложение начальной загрузки, которое могло бы определять статус установки и изменять текст кнопки. Я не знаю, смогу ли я добиться успеха, я просто пытаюсь