尝试渲染简单的 RDLC 文件时出现 FatalExecutionEngineError

问题描述 投票:0回答:2

我正在尝试为一个工作项目实现一个报告生成器,我确实曾经让它工作过,但我不能再工作了,不幸的是我无法弄清楚是什么导致了问题的出现。如果它至少包含一个占位符,即使是最简单的 RDLC 文件也不再起作用。

我使用的是 Windows 10 和 Visual Studio 2022。输出中显示的 CLR 版本是 CLR v4.0.30319

我尝试做的是:

  • 将 .NET 更新到最新版本
  • 在Visual Studio安装程序中安装大量.NET Framework
  • 开始一个新项目并逐步尝试使其发挥作用 但一切都没有成功。

以下是我启动应用程序时遇到的错误:

Error encountered when launching report, 1 Error encountered when launching report, 2

以下是我在尝试实施项目时遵循的步骤:

  • 创建 .NET Framework 4.7.2 Windows 应用程序
  • 在Nuget包管理器中,安装Microsoft.ReportingServices.ReportViewerControl.Winforms(我尝试了版本150.1620.0和150.1586.0)
  • 它还要求安装 Microsoft.SqlServer.Types,我接受
  • 我将一个 reportViewer 控件添加到我的表单中,并将其停靠
  • 我通过右键单击项目 > 添加 > 新项目 > 报告来创建一个新的 .RDLC 文件
  • 我将报告的页面尺寸和交互尺寸设置为 21 厘米、29.7 厘米
  • 我还为其设置了RDLC页面大小
  • 我在左上角添加一个包含当前日期的文本框,以及一个包含该日期的占位符
  • 在表单上的reportViewer 上,我选择我的rdlc 文件
  • 我启动应用程序
  • 它给出了我之前显示的错误

现在,如果我删除包含日期的占位符: [显示它在没有任何占位符的情况下工作的图像](https://i.stack.imgur.com/ErLLo.png)

你们已经遇到过这样的错误吗?你如何解决这个问题?几个月前我有一个完全可以工作的项目,但现在即使是最简单的页面也失败了。

我觉得奇怪的是,即使它要求我安装依赖项,它也不会出现在 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 文件中: Csproj containing PackageReference

这样做之后,它出现在 Nuget 包管理器和我的项目的引用中,但它仍然不起作用,即使警告不再显示。

为了更精确,我尝试使用占位符参数、内置字段甚至简单文本(显然带有引号),但没有成功。

如有任何帮助,我们将不胜感激,提前谢谢您。

c# .net windows-10 visual-studio-2022 rdlc
2个回答
0
投票

来自答案: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/


0
投票

从我从您转发的帖子中读到的内容来看,问题可能是由于我最近进行的 McAfee/Trellix 更新造成的。我会尝试联系我的 IT 团队以禁用它进行测试,我会回来确认这是否是原因,我认为是这样,因为它导致了我们开发团队的其他问题。

© www.soinside.com 2019 - 2024. All rights reserved.