.NET Core 6中Stimulsoft报表报错:该平台不支持此操作
问题解决:.NET Core 6 WPF中StiReport.Compile()抛出PlatformNotSupportedException
原因分析
你使用的StiReport.dll是针对.NET Framework编译的旧版本,其Compile()方法依赖的部分API(如System.CodeDom相关组件)在.NET Core/.NET 6环境中已被移除或标记为不支持,导致平台兼容性错误。
解决方案
1. 升级到支持.NET 6的Stimulsoft版本
直接引用.NET Framework版本的StiReport.dll无法在.NET Core/.NET 6中正常工作,需通过NuGet安装适配.NET 6的官方包:
- 搜索并安装
Stimulsoft.Reports.Wpf.Net(对应.NET 5+的WPF报表组件) - 安装完成后,替换原有的引用,确保项目中使用的是适配.NET 6的Stimulsoft类库。
2. 移除显式的Compile调用(临时兼容方案)
若暂时无法升级组件,可尝试跳过Compile()方法调用。在新版本的Stimulsoft中,加载报表后Render()会自动处理编译逻辑,修改代码如下:
public MainWindow() { InitializeComponent(); var report = new StiReport(); var pathreport = @"C:\Users\Administrator\source\repos\Gozaresh\Gozaresh\BUGETRP.mrt"; report.Load(pathreport); // 先加载报表模板文件 // 移除report.Compile(); report.Render(); report.Show(); }
3. 配置项目运行时标识
确保项目文件(.csproj)中指定了Windows平台的RuntimeIdentifier,例如:
<PropertyGroup> <TargetFramework>net6.0-windows</TargetFramework> <RuntimeIdentifier>win-x64</RuntimeIdentifier> <UseWPF>true</UseWPF> </PropertyGroup>
这能保证Stimulsoft组件调用Windows特定的原生API时正常工作。
内容的提问来源于stack exchange,提问作者مجتبی حکیمیان
相关产品推荐
相关产品推荐

