当前位置:  开发笔记 > 编程语言 > 正文

如何使用Windows Installer的托管自定义操作显示错误消息

如何解决《如何使用WindowsInstaller的托管自定义操作显示错误消息》经验,为你挑选了1个好方法。

我正在编写一个托管自定义操作.我正在使用Windows Installer Xml中的DTF Framework将托管dll包装到可用的CA dll中.CA做了它应该做的事情,但我仍然遇到错误处理问题:

Dim record As New Record(1)

' Field 0 intentionally left blank
' Field 1 contains error number
record(1) = 27533
session.Message(InstallMessage.Error, record)

上面的代码生成MSI日志中显示的以下文本:

MSI(c)(C4!C6)[13:15:08:749]:产品:TestMSI - 错误27533.区分大小写的密码不匹配.

错误号是指MSI中Error表中包含的代码.上面显示的消息是正确的.

我的问题是:为什么Windows Installer不会创建一个对话框来通知用户该错误?



1> David Gardin..:

MSI可以执行此操作,但您需要在messageType参数的某些额外值中使用OR.

例如.

Record record = new Record();
record.FormatString = string.Format("Something has gone wrong!");

session.Message(
    InstallMessage.Error | (InstallMessage) ( MessageBoxIcon.Error ) |
    (InstallMessage) MessageBoxButtons.OK,
    record );

有关详细信息,请参阅wix-users邮件列表中的此主题.

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有