Dotnet core Console调用WIndows.Forms的MessageBox提示

打印 上一主题 下一主题

主题 833|帖子 833|积分 2499

近来想把ET打表工具的报错提示直接调用win系统弹窗,好让策划显着的知道表格哪里填错数据,弹窗需要调用System.Windows.Forms库。操作如下:
需要在 .csproj 文件中添加:
  1. <UseWindowsForms>true</UseWindowsForms>
复制代码
须将目标平台设置为 Windows

修改之后,还是报错:
如果使用 Windows 窗体或 WPF,或者引用使用 Windows 窗体或 WPF 的项目或包,则必须将目标平台设置为 Windows
需将 .csproj 文件中的
  1. <TargetFramework>net8.0</TargetFramework>
复制代码
修改为:
  1. <TargetFramework>net8.0</TargetFramework>-windows
复制代码
修改后的 .csproj 文件
  1.       Exe    <TargetFramework>net8.0</TargetFramework>-windows    enable    enable    <UseWindowsForms>true</UseWindowsForms>  
复制代码
打表抛异常/控制台显示报错的地方改成弹窗提示即可
  1. EmitResult emitResult = compilation.Emit(memSteam);
  2. if (!emitResult.Success)
  3. {
  4.     StringBuilder stringBuilder = new StringBuilder();
  5.     foreach (Diagnostic t in emitResult.Diagnostics)
  6.     {
  7.         stringBuilder.AppendLine(t.GetMessage());
  8.     }
  9.     MessageBox.Show($"动态编译失败:\n{stringBuilder}");
  10.     throw new Exception($"动态编译失败:\n{stringBuilder}");
  11. }
  12. memSteam.Seek(0, SeekOrigin.Begin);
复制代码
再次执行
  1. dotnet run
复制代码
就能正常运行了,可以看到弹窗信息。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

万万哇

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表