Я обновляю установщик на основе InstallShield. Я добавил новое управляемое настраиваемое действие, написанное на C#, и упакованное с использованием Wix DTF. Действие вызывается правильно и выполняет необходимые действия.MSI: Показать окно сообщения в фазе пользовательского интерфейса установки
У проблемы есть сообщение об ошибке.
Метод 1: MsiProcessMessage
Из статей я прочитал, я понял, что MsiProcessMessage
правильный способ сделать это, однако, этот способ не работает в последовательности UI (до установки на самом деле начинается копирование файлов и модифицирующая система). В последовательности установки этот метод работает. Код, который я использую следующее:
Record record = new Record() { FormatString = "Password is not valid for this user." };
session.Message(
InstallMessage.Error | (InstallMessage)(MessageBoxIcon.Error) | (InstallMessage)MessageBoxButtons.OK,
record
);
ли это на самом деле невозможно, чтобы показать сообщение об ошибке в последовательности пользовательского интерфейса (Немедленное исполнение) с помощью MsiProcessMessage
?
Метод 2: MessageBox.Show
Windows.Forms
Использование произведений для показа окна сообщений. Однако сообщение отображается в фоновом режиме мастера настройки и показывает отдельный значок в панели задач Windows.
Есть ли способ получить дескриптор окна мастера установки, и таким образом решить эту проблему?
Вы догадались совершенно правильно. Я уже выбрал 'SpawnDialog' в качестве обходного пути. Второе обходное решение заключалось в том, чтобы найти окно установщика по имени окна (зная, какое имя будет иметь мой установщик), что гораздо хуже. Спасибо за помощь! –
Мне кажется тривиальным создать общий диалог сообщений в MSI, который имеет свойства MESSAGECAPTION и MESSAGETEXT. Затем в ControlEvent вы можете просто назначить эти свойства и вызвать диалог. –