Подтвердить что ты не робот

Удаление диалогового окна лицензии

Я использую Wix 3.6, чтобы сделать простой MSI, который используется внутри. Я хотел бы знать, есть ли простой способ удалить диалог лицензионного соглашения.

Спасибо за любые предложения

4b9b3361

Ответ 1

Я пропустил его, используя:

<UI>
  <UIRef Id="WixUI_InstallDir" />
  <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>

Ответ 2

Ключ должен сделать пользовательский интерфейс и подключить разные страницы. См. Страницу на WixWiki

Вы хотите захватить код WixUI для набора диалогов, который вы используете (например, Minimal и т.д.), Вызвать его <UI Id='MyAppWix_UIMinimal'> и немного изменить его и указать в главном wxs. Вместо приветственного приветствия WelcomeEulaDlg вы хотите использовать WelcomeDlg. Отрегулируйте ссылки и подключите следующую кнопку на WelcomeDlg к следующему диалогу в стеке.

Вот хорошая ссылка с кодом: http://www.howdoicode.net/2011/09/wix-how-to-hide-license-agreement.html

Ответ 3

Это упрощение XML, упомянутого выше (http://www.howdoicode.net/2011/09/wix-how-to-hide-license-agreement.html), работало для меня; это фактически пропускает лицензию, а не подключается к пользовательской странице

<UI Id='Mondo'>
  <UIRef Id="WixUI_Mondo" />
  <UIRef Id="WixUI_ErrorProgressText" />
  <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="SetupTypeDlg"  Order="3">1</Publish>
   <!-- skip the page on the way back too -->
   <Publish Dialog="SetupTypeDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg"  Order="3">1</Publish>
</UI>

Я должен сказать, что общий подход к копированию кода wix и взломать его немного ("Изменение последовательности пользовательского интерфейса встроенного набора диалогов" (http://wixtoolset.org/documentation/manual/v3/wixui/wixui_customizations. html)) любопытно обречен действительно.... но эй

Ответ 4

Недавно я столкнулся с проектом Wix #, который имитирует XML файлы Wix, но позволяет вам кодировать настройку на С#. Вы можете найти этот проект на https://wixsharp.codeplex.com. Первоначально у меня была такая же проблема с файлом лицензии с "Условиями использования", которые должны быть приняты до того, как пользователь сможет установить программное обеспечение. Поскольку решение не носило такой характер, что для его принятия потребовались "Условия", мне пришлось найти способ удалить это диалоговое окно.

После небольшого поиска (в Wix #) я придумал следующее:

WixSharp.CommonTasks.Tasks.RemoveDialogsBetween(project, 
                              WixSharp.Controls.NativeDialogs.WelcomeDlg,
                              NativeDialogs.InstallDirDlg);

Хорошо, я понимаю, что это не решит проблему напрямую, потому что это будет означать, что вам придется перекодировать свое решение, поэтому следующий порт захода должен был посмотреть на исходный файл WiX, который был издан во время этого процесса,

Таким образом, я увидел, что существует элемент <UI> со следующим:

<UI>
  <Publish Dialog="WelcomeDlg" 
           Control="Next" 
           Event="NewDialog" 
           Value="InstallDirDlg" 
           Order="5">1</Publish>

  <Publish Dialog="InstallDirDlg" 
           Control="Back" 
           Event="NewDialog" 
           Value="WelcomeDlg" 
           Order="5">1</Publish>
</UI>

Которая связывает кнопку " Далее" в диалоговом окне приветствия с диалоговым окном каталога установки (или диалоговым окном после диалога лицензии) и кнопкой " Назад" диалогового окна установки в диалоговое окно приветствия - эффективно удаляет диалоговое окно лицензии.