我正在尝试为一个工作项目实现一个报告生成器,我确实曾经让它工作过,但我不能再工作了,不幸的是我无法弄清楚是什么导致了问题的出现。如果它至少包含一个占位符,即使是最简单的 RDLC 文件也不再起作用。
我使用的是 Windows 10 和 Visual Studio 2022。输出中显示的 CLR 版本是 CLR v4.0.30319
我尝试做的是:
以下是我启动应用程序时遇到的错误:
以下是我在尝试实施项目时遵循的步骤:
现在,如果我删除包含日期的占位符: [显示它在没有任何占位符的情况下工作的图像]()
你们已经遇到过这样的错误吗?你如何解决这个问题?几个月前我有一个完全可以工作的项目,但现在即使是最简单的页面也失败了。
我觉得奇怪的是,即使它要求我安装依赖项,它也不会出现在 Nuget 包管理器中,但它会在控制台中检测到它,因为我有一条警告:
NU1603: Microsoft.ReportingServices.ReportViewerControl.Winforms 150.1586.0 depends on Microsoft.SqlServer.Types (>= 14.0.0) but Microsoft.SqlServer.Types 14.0.0 was not found. An approximate best match of Microsoft.SqlServer.Types 14.0.314.76 was resolved.
看到这一点,我尝试将 SqlServer.Types 的 PackageReference 添加到我的项目的 csproj 文件中:
这样做之后,它出现在 Nuget 包管理器和我的项目的引用中,但它仍然不起作用,即使警告不再显示。
为了更精确,我尝试使用占位符参数、内置字段甚至简单文本(显然带有引号),但没有成功。
如有任何帮助,我们将不胜感激,提前谢谢您。
来自答案:Microsoft.ReportingServices.ReportViewerControl.Winform 抛出 FatalExecutionEngineError
当检测到公共语言运行时 (CLR) 中的致命错误时,会激活 fatalExecutionEngineError 托管调试助手 (MDA)。该过程将被终止。这通常是由数据损坏引起的,数据损坏可能是由许多问题引起的,例如调用格式错误的平台调用函数以及将无效数据传递给 CLR。更多详情可以参考这篇文档:fatalExecutionEngineError MDA。
对于报表查看器控件集成和 NuGet 包,您可以查看以下链接:
使用报表查看器控件集成报表服务 - 开始,
Microsoft.ReportingServices.ReportViewerControl.Winforms:https://www.nuget.org/packages/Microsoft.ReportingServices.ReportViewerControl.WinForms/。
从我从您转发的帖子中读到的内容来看,问题可能是由于我最近进行的 McAfee/Trellix 更新造成的。我会尝试联系我的 IT 团队以禁用它进行测试,我会回来确认这是否是原因,我认为是这样,因为它导致了我们开发团队的其他问题。