На этот вопрос нет хорошего ответа, так что в основном это просто информация.
Архитектура установщика Windows предполагает, что весь пользовательский интерфейс будет выполняться в первой последовательности пользовательского интерфейса, где вводятся данные. Вы, вероятно, поняли это из подавляющего большинства других установок, которые делают это. Последовательность выполнения предназначена для молчания, за исключением ошибок и индикатора выполнения. Когда установки Visual Studio разрешили классы установщика как способ запуска пользовательских действий управляемого кода, я не думаю, что они ожидали, что у людей будет пользовательский интерфейс. Это часто не работает из-за различий в потоках STA/MTA для перекачки сообщений, и, поскольку сам установщик Windows ничего не знает о вашем пользовательском действии, показывающем пользовательский интерфейс (пользовательский интерфейс не должен быть!), он все еще считает, что имеет фокус пользователя. Другая проблема заключается в том, что многие клиенты ожидают возможности автоматической установки, но ваше требование к мастеру пользовательского интерфейса противоречит этому.
Я думаю, что некоторые люди пытались решить вашу проблему, перечислив все Windows в системе, чтобы найти установщик Windows и перевести его в фоновый режим, но в последнее время я ничего не видел в этом или каких-либо примерах кода.
В вашем случае, если ваши данные пользовательского интерфейса могут быть собраны заранее с помощью одного из стандартных диалоговых окон пользовательского интерфейса, попробуйте это. К сожалению, настройки VS не позволяют проверить ввод. Если мастер пользовательского интерфейса предназначен для самого приложения, то его обычно проще сделать при первом запуске приложения, а также его легче тестировать и отлаживать, его можно запустить позже для перенастройки и избежать подобных проблем.
Ограничения настроек VS включают в себя отсутствие необходимости создавать собственные диалоговые окна для сбора и проверки ввода ожидаемым образом в начале последовательности пользовательского интерфейса. Также вы не можете отключить кнопку «Отмена», потому что настраиваемые действия VS запускаются после того, как все установлено, что слишком поздно для отправки сообщения «отключить кнопку отмены». Общая проблема заключается в том, что вы боретесь с ограничениями настроек VS, и может быть лучше использовать другой инструмент или запустить этот мастер пользовательского интерфейса при первой загрузке приложения.
person
PhilDW
schedule
29.05.2015