无法加载文件或程序集“Microsoft.ReportViewer.WebForms”

我正在尝试在asp.net中使用报表查看器并上传了我的网站。 但是,当我的页面包含报告查看器加载时,它显示以下错误:

无法加载文件或程序集“Microsoft.ReportViewer.WebForms,版本= 11.0.0.0,文化=中立,PublicKeyToken = 89845dcd8080cc91”或其依赖项之一。 定位的程序集清单定义与程序集引用不匹配。 (来自HRESULT的exception:0x80131040)

这是我第一次部署ASP.NET网站,所以我不确定是什么问题。

这个链接给了我一个线索,我没有安装所需的更新(我有问题的版本nr,v11.0.0.0)

ReportViewer 2012更新“遗憾”要知道

我安装了更新SQLServer2008R2SP2

我下载了ReportViewer.msi ,它需要为Microsoft®SQLServer®2012安装Microsoft®System CLRtypes(查看安装程序页面的一半)

在GAC现在可用的WebForms v11.0.0.0( C:\Windows\assembly\Microsoft.ReportViewer.WebForms v11.0.0.0以及Microsoft.ReportViewer.Common v11.0.0.0

您需要引用Microsoft.ReportViewer.WebForms和Microsoft.ReportViewer.Common并将CopyLocal属性设置为true。 这将导致dll被复制到我们的bin目录(都是必要的)。

我已经安装Microsot.ReportViewer.2012.Runtime nuget包和问题已经解决,而不安装ReportViewer.msi或SQLfunction包12

在这里输入图像说明

我已经通过复制两者来解决问题

  • Microsoft.ReportViewer.WebForms.dllC:\Program Files (x86)\Microsoft Visual Studio 12.0\ReportViewer
  • Microsoft.reportviewer.common.dllC:\Program Files\Microsoft Office\Office15\ADDINS\PowerPivot Excel Add-in

进入bin文件夹(网站)。

当然web.config必须有:

  <httpHandlers> <add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" validate="false" /> </httpHandlers> <assemblies> <add assembly="Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" /> <add assembly="Microsoft.ReportViewer.Common, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" /> </assemblies> <buildProviders> <add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" /> </buildProviders> <system.webServer> <validation validateIntegratedModeConfiguration="false" /> <handlers> <add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" /> </handlers> </system.webServer> 

就这样。 对我来说没问题。

希望这可以帮助。

我遇到了同样的错误。 我的Web应用程序指向报表查看器版本10.0,但是如果安装了11.0,它会将10.0 .dll中的redirect添加到11.0。 当11.0被卸载时,这成为一个问题,因为这不能纠正10.0 .dll中的redirect。 在我的情况下的修复只是简单地卸载并重新安装10.0。

上传文件Microsoft.ReportViewer.WebForms.dll到您的Web应用程序的bin目录。

你可以在你的本地Web应用程序的bin目录下find这个dll文件。

我有一个旧的webforms应用程序的这个错误。 原来在标记中有一行导致问题。 我删除它,错误消失。

 <%@ Register assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" namespace="Microsoft.Reporting.WebForms" tagprefix="rsweb" %> 

从版本10.0.0.0,即“Microsoft.ReportViewer.WebForms,Version = 10.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a”/>

到版本11.0.0.0,即

“Microsoft.ReportViewer.WebForms,Version = 11.0.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91”

花了一段时间,直到我明白,不仅版本改变,而且公众令牌密钥,你可以看到上面。

我有一个不同的包相同的错误。 我的问题是一个依赖项目引用了一个不同的版本。 我改变了他们是相同的版本,一切都很好。