我更新的基于InstallShield安装的UI相显示消息框。我已经添加了一个新的托管自定义操作,使用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
在UI序列(立即执行)的错误信息?
方法2:MessageBox.Show
使用Windows.Forms
作品用于示出的消息框。但是,消息显示在设置向导的背景中,并在Windows任务栏中显示一个单独的图标。
有没有办法让安装向导窗口句柄,这种方式解决这个问题?
你猜对了。我已经选择了'SpawnDialog'作为解决方法。第二种解决方法是通过窗口名称找到安装程序窗口(知道我的安装程序将具有什么名称),这在我看来更糟糕。感谢您的帮助! –
我发现在MSI中创建具有MESSAGECAPTION和MESSAGETEXT属性的通用消息框对话并不重要。然后在ControlEvent中,您可以分配这些属性并生成对话框。 –