Я хочу показать пользователю диалоговое окно, в котором говорится: «Это будет удалено при этой установке», и если нажать «ДА» или «ОК», установка может быть продолжена; в противном случае я хочу прервать его.
Поэтому я определил пользовательское действие (запустить vbscript) следующим образом:
NOT Installed AND NOT PATCH AND NOT MYPRODUCT_ANYVERSION=""
VBSCRIPT (ShowUninstallInformationDlg.vbs):
'ShowUninstallInformationDlg
Option Explicit
Dim text
Dim productName
Dim rec
productName = Session.Property("ProductName")
text = "The following installations are going to be removed with the installation of " & productName & ":"
If Session.Property("MYPRODUCT_ANYVERSION") <> "" Then
text = text & "\n * MyOtherProduct (any version)"
End If
Set rec = Session.Installer.CreateRecord(1)
rec.StringData(0) = text
Session.Message &H0B000034, rec
Тип «&H0B000034», который я использую в качестве аргумента «Session.Message», взят из примера из в MSDN см. http://msdn.microsoft.com/en-us/library/windows/desktop/aa371672(v=vs.85).aspx.
Всегда выполняется сценарий. В моем журнале MSI появляется следующая ошибка:
Ошибка 1720. Проблема с этим пакетом установщика Windows. Не удалось запустить сценарий, необходимый для завершения этой установки. Обратитесь в службу поддержки или к поставщику пакета. Пользовательское действие Ошибка сценария ShowUninstallInformationDlg -2147467259, Ошибка Msi API: Сообщение, Вид, Строка записи 19, Столбец 1,
Я много искал в Google примеры с использованием Session.Message, но безрезультатно... Может ли кто-нибудь помочь? Спасибо!