Автоматическая установка WiX через свойство - PullRequest
0 голосов
/ 03 июня 2019

Можно ли выполнить установку без вывода сообщений без параметра "/ q" с помощью условия в настройке WiX?

У меня есть UIRef и свойство без вывода сообщений со значением 1, и теперь я хочу установить без вывода сообщений, если это свойство равно 1.

1 Ответ

0 голосов
/ 03 июня 2019

WiX GUI : Никогда не видел это честно, и я бы не советовал. Некоторые MSI-файлы вообще не имеют графического интерфейса, а затем устанавливаются без графического интерфейса - очевидно. Я полагаю, что это один из вариантов, который является неприемлемым.

Условие : я быстро осмотрел, и кондиционирование записи WelcomeDlg в InstallUISequence может работать, хотя Я нахожу это очень странным дизайном:

  1. Используйте Orca и добавьте это условие к WelcomeDlg: (NOT Installed OR PATCH) AND (NOT SILENT=1)
  2. Также добавьте запись в Property table; SILENT=0, чтобы избежать режима тишины в качестве режима запуска по умолчанию

Теперь вы можете попробовать дважды щелкнуть MSI, и вы увидите диалоги. Если вы используете приведенную ниже командную строку, диалоговых окон не должно быть, но вы увидите индикатор выполнения и получите запрос на повышение прав UAC:

msiexec.exe /i MySetup.msi SILENT=1

Фрагмент WiX : вот разметка, которую вы можете попробовать использовать. Никаких гарантий! :-). Я могу заменить на полный "маленький работоспособный" образец, если запрошено - ниже как раз то, что вы можете «проскочить» в рабочий настроить. Вам также необходимо изменить режимы обслуживания / диалоговые окна удаления, если вы хотите, чтобы удаление, изменение и восстановление были беззвучными. Делать модификации беззвучного типа не имеет смысла.

Пожалуйста, помните, что разметка является "взломать" и не была полностью протестировано во всех режимах установки: install, modify, repair, self-repair, patch, resume suspended, uninstall, major upgrade uninstall, etc... - пожалуйста, проверьте соответственно - всегда есть сюрпризы:

<..>

<Property Id="SILENT" Value="0" />
<UIRef Id="WixUI_Mondo" />

<..>

<InstallUISequence>
  <Show Dialog="WelcomeDlg" After="ResumeDlg">(NOT Installed OR PATCH) AND (NOT SILENT=1)</Show>
  <Show Dialog="ExitDialog" OnExit="success">(NOT SILENT=1)</Show>
</InstallUISequence>

<..>

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

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

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