You need to enable JavaScript to run this app. Blazor Server复用Windows Forms图表代码报程序集加载错误如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Blazor Server复用Windows Forms图表代码报程序集加载错误如何解决

问题原因

你调用的System.Windows.Forms.DataVisualization.Charting是.NET Framework专属的WinForms组件,强依赖System.Windows.Forms 4.0.0.0程序集。而.NET Core 3.1的Blazor Server项目默认不会引入WinForms相关依赖,因此运行时会抛出找不到程序集的异常。原WinForms桌面项目因为本身就运行在.NET Framework环境下,自带完整的WinForms程序集,所以运行正常。

修复方案

方案1:临时兼容(仅支持Windows环境部署)

如果你的Blazor Server应用只需要在Windows服务器上部署,可以通过开启项目的WinForms兼容模式快速修复,操作步骤如下:

  • 右键点击你的Blazor Server项目,选择「编辑项目文件」打开.csproj配置
  • 在<PropertyGroup>节点中修改/新增以下配置:
<TargetFramework>netcoreapp3.1-windows</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
  • 保存配置后重新生成项目,系统会自动补全WinForms相关依赖,即可正常运行原有代码。

注意:该方案仅支持Windows环境部署,且服务端调用WinForms控件可能存在GDI资源泄漏风险,高并发场景下稳定性较差,不建议生产环境长期使用。

方案2:跨平台兼容(推荐生产环境使用)

直接替换掉依赖WinForms的图表组件,改用跨平台的服务端图表生成库,无需依赖WinForms程序集,同时支持Windows/Linux/macOS环境部署:

  • 可选的替代库包括:OxyPlot、Microcharts、QuestPDF内置图表组件等
  • 仅需要将原代码中给WinForms图表赋值、设置样式的逻辑,对应替换为新图表库的API即可,后续导出图片插入PDF的逻辑无需做大幅改动。

内容的提问来源于stack exchange,提问作者Tom Boudniatski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 15:36:04