我目前正在使用webforms将报表服务合并到我们的Web应用程序(MVC)中。我在现有项目中遇到了对ReportViewer的一些引用的问题,我创建了一个新项目,发现ReportViewer的默认引用工作正常,并且能够在aspx页面中为它创建一个控件。我的现有项目似乎有一个更新的ReportViewer,错误的引用。考虑到这一点,我采用了新项目,并使用nuget更新默认的ReportViewer程序集,以尝试重新创建问题。
问题仍然存在,因此我尝试在新项目上卸载更新。在小心地将web.config和aspx文件恢复到其原始状态并确保引用也已恢复之后,我尝试将新的ReportViewer添加到卸载后应该是一个新项目。这会在预览窗格中产生错误:
“创建控件时出错 - ReportViewer1无法加载文件或程序集'Microsoft.ReportViewer.WebForms,Version = 14.0.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91'或其依赖项之一。系统找不到指定的文件。 “
版本14.0.0.0是更新版本,而版本12.0.0.0是默认版本且当前是活动版本。在我的代码中没有位置我已经引用了14.0.0.0,也没有在csproj文件或包中引用。
卸载更新后,是否有一些我可能错过清理的地方?
答案 0 :(得分:0)
1.检查您的某个项目文件夹是否有Microsoft.ReportViewer.WebForms.dll版本14.0(如果它在那里,即使您引用的是12.0版Visual Studio将使用“nearset”dll)
2.如果之前的建议无效,请使用记事本或记事本++编辑.csproj文件并在那里找到引用。
答案 1 :(得分:0)
确保GAC中列出了Microsoft.ReportViewer.WebForms,Version = 14.0.0.0,....检查
gacutil -l
如果没有在那里列出,您可以按如下方式加载组件:
cd "<project-packages-path>\packages\Microsoft.ReportingServices.ReportViewerControl.WebForms.140.1000.523\lib\net40"
gacutil -i "Microsoft.ReportViewer.Common.dll"
gacutil -i "Microsoft.ReportViewer.Common.resources.dll"
gacutil -i "Microsoft.ReportViewer.DataVisualization.dll"
gacutil -i "Microsoft.ReportViewer.DataVisualization.resources.dll"
gacutil -i "Microsoft.ReportViewer.Design.dll"
gacutil -i "Microsoft.ReportViewer.Design.resources.dll"
gacutil -i "Microsoft.ReportViewer.ProcessingObjectModel.dll"
gacutil -i "Microsoft.ReportViewer.WebDesign.dll"
gacutil -i "Microsoft.ReportViewer.WebDesign.resources.dll"
gacutil -i "Microsoft.ReportViewer.WebForms.dll"
gacutil -i "Microsoft.ReportViewer.WebForms.resources.dll"
gacutil -i "Microsoft.ReportViewer.WinForms.dll"
gacutil -i "Microsoft.ReportViewer.WinForms.resources.dll"
您可能需要重新启动Visual Studio才能查看新组件。