Я хотел бы использовать установщик WixUI_Minimal, но мне не нужна страница лицензии. Как я могу это сделать?
Как создать минимальный пользовательский интерфейс установщика WiX без страницы лицензии?
Ответ 1
Ключ заключается в том, чтобы создать пользовательский интерфейс и подключить разные страницы. Смотрите страницу в WixWiki
Вы хотите получить минимальный код WixUI и немного его изменить. Вместо диалогового окна приветствия WelcomeEulaDlg вы хотите использовать WelcomeDlg. Настройте ссылки и подключите кнопку Next на WelcomeDlg к следующему диалоговому окну в стеке, которым будет PrepareDlg.
Полный код:
<UI Id="WixUI_Minimal">
<TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" />
<TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" />
<TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" />
<Property Id="DefaultUIFont" Value="WixUI_Font_Normal" />
<Property Id="WixUI_Mode" Value="Minimal" />
<DialogRef Id="ErrorDlg" />
<DialogRef Id="FatalError" />
<DialogRef Id="FilesInUse" />
<DialogRef Id="MsiRMFilesInUse" />
<DialogRef Id="PrepareDlg" />
<DialogRef Id="ProgressDlg" />
<DialogRef Id="ResumeDlg" />
<DialogRef Id="UserExit" />
<!-- This is the welcome dialog you specified-->
<DialogRef Id="WelcomeDlg" />
<!-- Hook the new welcome dialog to the next one in the stack-->
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="PrepareDlg">1</Publish>
<Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish>
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish>
<Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish>
<Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
<Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
<Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg">1</Publish>
<Property Id="ARPNOMODIFY" Value="1" />
</UI>
<UIRef Id="WixUI_Common" />
Ответ 2
Я просто использовал бы один из уже созданного интерфейса WiX и переопределял бы последовательность (сделайте ее выше, чтобы она переопределила предыдущую настройку):
<Product>
...
<UI>
<UIRef Id="WixUI_InstallDir" />
<!-- Skip license dialog -->
<Publish Dialog="WelcomeDlg"
Control="Next"
Event="NewDialog"
Value="InstallDirDlg"
Order="2">1</Publish>
<Publish Dialog="InstallDirDlg"
Control="Back"
Event="NewDialog"
Value="WelcomeDlg"
Order="2">1</Publish>
</UI>
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER" />
...
</Product>
Ответ 3
Низкотехнологичный способ обойти это просто установить свойство LicenseAccepted
на 1
и поместить некоторую полезную информацию типа readme в поле лицензии. Это означает, что пользователю не нужно нажимать кнопку, и вам не нужно беспокоиться о создании дополнительного диалога:)
Пример:
<Property Id="LicenseAccepted" Value="1"/>
Ответ 4
См. ответ на связанный вопрос, WiX script только с экранами только приветствия и завершения, для простейшего минимального UI:
- WelcomeDlg
- Процесс установки
- Диалог выхода
Ответ 5
@Ответ на Давидовица очень хорош
но будьте осторожны:
<Publish Dialog="InstallDirDlg"
Control="Back"
Event="NewDialog"
Value="WelcomeDlg"
Order="2">1</Publish>
он должен иметь Order = "2" , или он не может работать.