Dotnet core Console调用WIndows.Forms的MessageBox提示
|
最近想把ET打表工具的报错提示直接调用win系统弹窗,好让策划明显的知道表格哪里填错数据,弹窗需要调用System.Windows.Forms库。操作如下:
需要在 .csproj 文件中添加:- <UseWindowsForms>true</UseWindowsForms>
复制代码 须将目标平台设置为 Windows
修改之后,还是报错:
如果使用 Windows 窗体或 WPF,或者引用使用 Windows 窗体或 WPF 的项目或包,则必须将目标平台设置为 Windows
需将 .csproj 文件中的- <TargetFramework>net8.0</TargetFramework>
复制代码 修改为:- <TargetFramework>net8.0</TargetFramework>-windows
复制代码 修改后的 .csproj 文件
- Exe <TargetFramework>net8.0</TargetFramework>-windows enable enable <UseWindowsForms>true</UseWindowsForms>
复制代码 打表抛异常/控制台显示报错的地方改成弹窗提示即可- EmitResult emitResult = compilation.Emit(memSteam);
- if (!emitResult.Success)
- {
- StringBuilder stringBuilder = new StringBuilder();
- foreach (Diagnostic t in emitResult.Diagnostics)
- {
- stringBuilder.AppendLine(t.GetMessage());
- }
- MessageBox.Show($"动态编译失败:\n{stringBuilder}");
- throw new Exception($"动态编译失败:\n{stringBuilder}");
- }
- memSteam.Seek(0, SeekOrigin.Begin);
复制代码 再次执行就能正常运行了,可以看到弹窗信息。
来源:https://www.cnblogs.com/flamesky/p/18274280
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
|
|
|
发表于 2024-6-28 22:52:51
举报
回复
分享
|
|
|
|