Wix bootstrapper не показывает лицензию при использовании пользовательской темы - PullRequest
0 голосов
/ 30 мая 2018

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

Код, который я используюниже:

<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense">
  <Payload SourceFile="..\..\..\Libraries\InstallerFiles\graphics\UIDialog.bmp"/>
  <Payload SourceFile="..\..\..\Libraries\InstallerFiles\graphics\UIBanner.bmp"/>
  <Payload SourceFile="..\..\..\Libraries\InstallerFiles\graphics\UIBanner2.bmp"/>
  <Payload SourceFile="..\..\..\Libraries\InstallerFiles\graphics\CoreTheme.xml"/>
  <bal:WixStandardBootstrapperApplication LicenseFile="..\..\..\Libraries\InstallerFiles\licenses\License Agreement_Test.rtf" SuppressOptionsUI="yes" ThemeFile="..\..\..\Libraries\InstallerFiles\graphics\CoreTheme.xml" />
</BootstrapperApplicationRef>

И ThemeFile выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<Theme xmlns="http://wixtoolset.org/schemas/thmutil/2010">
  <Window Width="500" Height="390" HexStyle="100a0000" FontId="0">[WixBundleName] Setup Wizard.</Window>
  <Font Id="0" Height="-12" Weight="500" Foreground="000000" Background="FFFFFF">Segoe UI</Font>
  <Font Id="1" Height="-18" Weight="575" Foreground="000000">Segoe UI</Font>
  <Font Id="2" Height="-16" Weight="500" Foreground="000000">Segoe UI</Font>
  <Page Name="Install">
    <Text X="175" Y="11" Width="-11" Height="64" FontId="1">Welcome to the [WixBundleName] Setup Wizard</Text>
    <Image X="0" Y="0" Width="164" Height="312" ImageFile="UIDialog.bmp" />
    <Static Height="1" Width="-0" X="0" Y="312" Visible="yes" />
    <Text Name="Welcome" X="175" Y="90" Width="-11" Height="51" FontId="0">This Setup Wizard will install [WixBundleName] on your computer.</Text>
    <Text Name="Welcome" X="175" Y="141" Width="-11" Height="51" FontId="0">It is recommended that you close all other applications before continuing.</Text>
    <Text Name="Welcome" X="175" Y="192" Width="-11" Height="51" FontId="0">Click Install to continue, or Close to exit the Setup Wizard.</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>
  <Page Name="Progress">
    <Image X="0" Y="0" Width="493" Height="58" ImageFile="UIBanner2.bmp" />
    <Static Height="1" Width="-0" X="0" Y="312" Visible="yes" />
    <Text X="11" Y="11" Width="-11" Height="64" FontId="1">[WixBundleName] Setup Wizard</Text>
    <Static Height="1" Width="-0" X="0" Y="58" />
    <Text X="11" Y="120" Width="-11" Height="25" FontId="2">#(loc.ProgressHeader)</Text>
    <Text X="11" Y="161" Width="70" Height="17" FontId="0">#(loc.ProgressLabel)</Text>
    <Text Name="OverallProgressPackageText" X="85" Y="161" Width="-11" Height="17" FontId="0">#(loc.OverallProgressPackageText)</Text>
    <Progressbar Name="OverallCalculatedProgressbar" X="11" Y="183" Width="-11" Height="15" />
    <Button Name="ProgressCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.ProgressCancelButton)</Button>
  </Page>
  <Page Name="Modify">
    <Text X="175" Y="11" Width="-11" Height="64" FontId="1">Welcome to the [WixBundleName] Setup Wizard.</Text>
    <Image X="0" Y="0" Width="164" Height="312" ImageFile="UIDialog.bmp" />
    <Static Height="1" Width="-0" X="0" Y="312" Visible="yes" />
    <Text X="175" Y="90" Width="-11" Height="51" FontId="0">The Setup Wizard allows you to remove the [WixBundleName] features from your computer.</Text>
    <Text X="175" Y="141" Width="-11" Height="51" FontId="0">Click Uninstall to continue, or Close to exit the Setup Wizard.</Text>
    <Button Name="UninstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.ModifyUninstallButton)</Button>
    <Button Name="ModifyCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.ModifyCloseButton)</Button>
  </Page>
  <Page Name="Success">
    <Text X="175" Y="11" Width="-11" Height="64" FontId="1">Completed the [WixBundleName] Setup Wizard.</Text>
    <Image X="0" Y="0" Width="164" Height="312" ImageFile="UIDialog.bmp" />
    <Static Height="1" Width="-0" X="0" Y="312" Visible="yes" />
    <Text X="175" Y="90" Width="-11" Height="51" FontId="0">Click the Close button to exit the Setup Wizard</Text>
    <Button Name="SuccessCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.SuccessCloseButton)</Button>
  </Page>
  <Page Name="Failure">
    <Text X="175" Y="11" Width="-11" Height="64" FontId="1">The [WixBundleName] Setup Wizard was interrupted.</Text>
    <Image X="0" Y="0" Width="164" Height="312" ImageFile="UIDialog.bmp" />
    <Static Height="1" Width="-0" X="0" Y="312" Visible="yes" />
    <Text Name="FailureText" X="175" Y="90" Width="-11" Height="71" FontId="0">
      The [WixBundleName] Setup was interrupted. Your system has not been modified. To install this program at a later time, please run the installation again. Refer to the installation manual for further instructions.
    </Text>
    <Text Name="FailureMessageText" X="175" Y="161" Width="-11" Height="80" FontId="0" HideWhenDisabled="yes" />
    <Button Name="FailureCloseButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.FailureCloseButton)</Button>
  </Page>
</Theme>

Я хотел бы показать страницу лицензионного соглашения сразу после страницы Install.Есть предложения?

Заранее спасибо!

1 Ответ

0 голосов
/ 30 мая 2018

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

Если вы действительно хотите изменить загрузочное приложение до такой степени, выпотребуется загрузить исходный код wix3 с github и приступить к пониманию и модификации WixStdBA.vcxproj в свой собственный BA для определения нового потока пользовательского интерфейса.

Ваша тема не имеет определения поля редактирования eula rich, поэтому она не будет отображаться.

Так как вы используете (я предполагаю) WixStdBA.dll по умолчанию и используете один изтемы по умолчанию, вам нужно следовать их структуре, чтобы использовать элементы пользовательского интерфейса, которые они использовали.Вы можете добавить некоторые элементы, такие как флажки и, я думаю, текстовые поля, но вы ограничены в части, касающейся других интерактивных элементов пользовательского интерфейса.

Здесь - это ссылка на исходный RTFLicensetheme.

Обратите внимание на их страницу установки:

<Page Name="Install">
    <Richedit Name="EulaRichedit" X="11" Y="80" Width="-11" Height="-70" TabStop="yes" FontId="0" HexStyle="0x800000" />
    <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.InstallCloseButton)</Button>
</Page>

Если вы хотите, чтобы лицензионное соглашение отображалось на первой странице, вы должны добавить Richedit с именем EulaRichedit вместе с флажком с именем EulaAcceptCheckbox.Также любой из интерактивных элементов пользовательского интерфейса в теме должен иметь то же имя, иначе они не будут работать в вашем загрузчике.В этом случае, если у вас нет флажка, кнопка Установить будет отключена навсегда.

Это ограничение использования встроенного загрузчика без написания собственного.Вы также не можете добавлять новые кнопки, которые делают что-либо, не изменяя код приложения начальной загрузки самостоятельно.По сути, вы ограничены перемещением элементов пользовательского интерфейса (если вы действительно этого хотите) и добавлением статического текста, флажков и, возможно, редактируемых текстовых полей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...