System.Security.Policy.Evidence.AddHostEvidence: 类型参数 'System.Security.Policy.Zone' 违反了类型参数 'T' 的约束

System.Security.Policy.Evidence.AddHostEvidence: type argument 'System.Security.Policy.Zone' violates the constraint of type parameter 'T'

我正在尝试使用 .NET6 在 blazor 服务器项目中创建 rdlc 报告,然后 this blog guide 布局完美但呈现报告时我遇到了这个错误。

System.Security.Policy.Evidence.AddHostEvidence: type argument 'System.Security.Policy.Zone' violates the constraint of type parameter 'T'.'

执行时出现此错误LocalReport report = new LocalReport(pathToRdlc);

我进行了搜索,但没有任何帮助。错误是 reported on github 几天前,但还没有解决方案。

这里是 github 上使用上述相同指南的示例项目。

我找到了这个 nuget 包 Microsoft.ReportViewer.NETCoreGithub repository as my alternative solution. its almost same implementation as detailed in this blog here 但是对于 nuget 包,get 方法的实现如下所示。它使我免于上述错误,希望对您也有帮助。

 
 string reportName="TestReport"; 
 string reportPath =Path.Combine(webHostEnvironment.ContentRootPath,"ReportFiles", "SampleReport.rdlc"); //or webHostEnvironment.WebRootPath if your report is in wwwroot folder

 Stream reportDefinition; // your RDLC from file or resource
 //IEnumerable dataSource; // your datasource for the report
 using var fs = new FileStream(reportPath, FileMode.Open);
 reportDefinition = fs;
 LocalReport report = new LocalReport();
 report.LoadReportDefinition(reportDefinition);
 report.DataSources.Add(new ReportDataSource("source", dataSource));
 report.SetParameters(new[] { new ReportParameter("parameter1", "RDLC Sample Report ") });
 byte[] pdf = report.Render("PDF");
 fs.Dispose();

 return File(pdf, "application/pdf", reportName + ".pdf");

我也在使用包 AspNetCore.Reporting,但在将我的解决方案更新到 .net 6 后遇到了同样的问题。 我更改为 ReportViewer.NETCore 并解决了问题。