.net - 如何修复 Windows 桌面应用程序中的异常“无法加载文件或程序集 'Microsoft.SqlServer.Types,版本 = 12.0.0.0”
问题描述
该应用程序是一个相当简单的 WPF 应用程序,它允许用户生成简单的报告。这些报告是使用 Microsoft RDLC 报告设计器生成的,并使用 Microsoft Reporting Services 生成。
该应用程序在生产中运行良好一年多,但用户今天才开始遇到此错误。服务器管理员告诉我,这台服务器没有进行任何更改,即没有更新,也没有安装新的软件。
我的应用程序确实引用了 Microsoft.SqlServer.Types 但 Copy Local 属性设置为 True :
我验证了 Microsoft.SqlServer.Types.dll(版本 12.0.0.0)已复制到应用程序的文件夹中。
报告的定义文件Reports/ShipmentSummaryReport.rdlc
也存在于应用程序文件夹中,并且自生产部署以来未更改。
完整的异常堆栈如下:
Microsoft.Reporting.WinForms.LocalProcessingException: An error occurred during local report processing.
---> Microsoft.Reporting.DefinitionInvalidException: The definition of the report 'Reports/ShipmentSummaryReport.rdlc' is invalid.
---> Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: An unexpected error occurred in Report Processing.
---> System.BadImageFormatException: Could not load file or assembly 'Microsoft.SqlServer.Types, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The module was expected to contain an assembly manifest.
at Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.IntermediateFormatWriter.Write(Object obj, Boolean verify, Boolean assertOnInvalidType)
解决方案
在查看了支持主题和论坛后,我发现托管应用程序的计算机上缺少以下文件夹和 .dll:
C:\Windows\assembly\GAC_MSIL\Microsoft.SqlServer.Types\12.0.0.0__89845dcd8080cc91\Microsoft.SqlServer.Types.dll
Microsoft.SqlServer.Types.dll
我创建了文件夹并从https://www.nuget.org/packages/Microsoft.SqlServer.Types/下载了 v 12.0.0.0到这个文件夹中。
重新启动应用程序并报告工作。
推荐阅读
- excel - VBA 计数 SpecialCells
- algorithm - 计算给定半径的圆内所有点的点数
- python - 将列表字典中的列表压缩在一起
- flutter - 运行 | 第 3 行的调试按钮 - Visual Studio Code
- reactjs - 如何在我的 eventHandler 中访问 React 状态?
- r - 如何从 R 中的分布中的移位(右或左无关紧要)生成随机变量?
- pandas - 分段错误:本地计算机失败 (16gb) 但 AWS EC2 工作 (1gb)
- dialogflow-es - Botium 对话流 SET_DIALOGFLOW_QUERYPARAMS 不起作用
- datetime - 在 Tableau Report 中创建过滤器以在时区之间切换
- javascript - React Native Maps MapView.fitToCoordinates 在测试时崩溃应用程序(Expo)