Wix 使用DTF的MessageBox
MSDN上的MsiProcessMessage函数doco显示了以下示例:Wix 使用DTF的MessageBox,wix,windows-installer,dtf,Wix,Windows Installer,Dtf,MSDN上的MsiProcessMessage函数doco显示了以下示例: PMSIHANDLE hInstall; PMSIHANDLE hRec; MsiProcessMessage(hInstall, INSTALLMESSAGE(INSTALLMESSAGE_ERROR|MB_ABORTRETRYIGNORE|MB_ICONWARNING), hRec); 如何在DTF中使用Session.Message来实现这
PMSIHANDLE hInstall;
PMSIHANDLE hRec;
MsiProcessMessage(hInstall,
INSTALLMESSAGE(INSTALLMESSAGE_ERROR|MB_ABORTRETRYIGNORE|MB_ICONWARNING),
hRec);
如何在DTF中使用Session.Message来实现这一点?唯一的重载将Session.InstallMessage作为参数。我看到MessageBoxButtons枚举,我将这两种类型转换为In32并执行逻辑or,但我不确定如何将其返回到API中
我是缺少了什么还是DTF缺少了什么?我对DTF做得不多,但我的理解是,您可能需要类似于:
Session.Message(InstallMessage.Error |
(InstallMessage)((int)MessageButtons.AbortRetryIgnore |
(int)MessageIcon.Warning),
record);
不太漂亮。我已经设置了
messageType
agment的格式,以便更好地放在这里的文本框中。按照您的编码准则在代码中设置格式。:) 谢谢Rob,它很好用,只是我确信你指的是MessageButtons和MessageIcon,而不是MessageBoxButtons和MessageBoxIcon。我似乎无法将这些类型转换回InstallMessage类型。我看不到任何地方定义为枚举的MessageButtons
或MessageIcon
。当包含System.Windows.Forms
命名空间时,上面的代码应该可以工作。消息按钮和消息图标在Microsoft.Deployment.WindowsInstaller中定义。它在DTF帮助文件中。帮助主题说它可以转换为MessageBoxButtons。它可能还应该说它可以转换为InstallMessage。啊,是的,它们在那里是重复的。这一切都是重复的,也会起到同样的作用。但是,我会更新答案,因为它们是更好的选项,所以您不必拉入System.Windows.Forms
。