Планирование элемента <util: CloseApplication> после записи значений реестра

Я хочу, чтобы мой установщик закрыл все экземпляры IExplorer и затем выполнил установку. Чтобы закрыть IE, мне нужно добавить раздел реестра, чтобы все вкладки были закрыты без диалога, а затем я использую <util:CloseApplication... /> закрыть экземпляры IE.

И то и другое CloseApplication и Component что регистрирует ключ работает хорошо. Моя проблема в том, как запланировать их так CloseApplication будет выполняться только после добавления ключа реестра.

Единственное место, где я мог поставить <util:CloseApplication... /> без ошибок был под <Product...>, Порядок выполнения Компонента определяется:

<Feature..><ComponentRef../></Feature..>

Я не могу понять, как я могу контролировать порядок выполнения <util:CloseApplication... /> элемент и задержать его, пока ключ реестра не установлен.

1 ответ

Решение

<util:CloseApplication> Элемент переведен в ряд пользовательских действий. Один из них является WixCloseApplications который фактически планирует отложенный CA, чтобы сделать работу. По умолчанию это запланировано раньше InstallFiles, и вы можете попробовать перенести его после WriteRegistryValues:

<InstallExecuteSequence>
  ...
  <Custom Action="WixCloseApplications" After="WriteRegistryValues" />
  ...
</InstallExecuteSequence>

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

ОБНОВЛЕНИЕ: это была техническая сторона вопроса. Там также этический:)

AFAIU, то, что вы пытаетесь сделать, это изменить настройки IE с вашей установкой. Я не думаю, что это хороший пользовательский опыт. Представьте, что вы настроили свой браузер так, как вам нравится, и вдруг он изменил одну из этих настроек. Вы никогда не узнаете, что это сделала какая-то несвязанная установка, и вы будете обвинять Microsoft в этом грехе.:)

Итак, попробуйте переосмыслить эту часть архитектуры установки. Возможно, вы захотите добавить условие запуска, чтобы проверить настройки IE и сообщить об этом пользователю.

Другие вопросы по тегам