64

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

无法加载文件或程序集“Microsoft.ReportViewer.WebForms,Version=11.0.0.0,Culture=neutral,PublicKeyToken=89845dcd8080cc91”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)

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

4

13 回答 13

68

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

ReportViewer 2012 更新“问题”要注意

我安装了更新SQLServer2008R2SP2

我下载了ReportViewer.msi,它需要为 Microsoft® SQL Server® 2012 安装Microsoft® System CLR Types (在页面下方查看安装程序)

在 GAC 中现已提供 WebForms v11.0.0.0(C:\Windows\assembly\Microsoft.ReportViewer.WebForms v11.0.0.0以及Microsoft.ReportViewer.Common v11.0.0.0

于 2013-09-05T12:05:52.917 回答
46

我已经安装了 Microsoft.ReportViewer.2012.Runtime nuget 包,问题已经解决,无需安装 ReportViewer.msi 或 sql 功能包 12

在此处输入图像描述

于 2015-10-08T11:07:45.507 回答
24

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

于 2013-09-12T06:20:05.933 回答
8

我已经通过复制两个解决了这个问题

  • Microsoft.ReportViewer.WebForms.dll来自C:\Program Files (x86)\Microsoft Visual Studio 12.0\ReportViewer
  • Microsoft.reportviewer.common.dll来自C:\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>

就这样。对我来说还可以。

希望这可以帮助。

于 2015-04-11T16:00:38.763 回答
2

更新 ReportViewer 应该可以工作。使用以下说明从 Nuget 包管理器控制台安装更新的 ReportViewer。

安装包 Microsoft.ReportingServices.ReportViewerControl.WebForms

只需在您的 aspx 文件中添加以下程序集引用。

这里的15.0.0.0是我的 VS 中安装的 ReportViewerControl.WebForms 的版本号。请查看解决方案参考以确认版本号。无需添加PublicTokens (如果存在多个安装,可能会再次造成麻烦)。

于 2019-03-17T07:06:14.257 回答
1

我遇到了同样的错误。我的网络应用程序指向报告查看器版本 10.0,但是如果安装了 11.0,它会在 10.0 .dll 中添加重定向到 11.0。这在卸载 11.0 时成为一个问题,因为这不会更正 10.0 .dll 中的重定向。在我的情况下,解决方法是简单地卸载并重新安装 10.0.0。

于 2014-05-20T17:05:00.297 回答
1

我在一个旧的网络表单应用程序中遇到了这个错误。原来标记中有一行导致问题。我删除了它,错误消失了。

<%@ Register assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" namespace="Microsoft.Reporting.WebForms" tagprefix="rsweb" %>
于 2016-02-22T14:34:52.277 回答
1

我的解决方案是:

  1. 将 dll Microsoft.ReportViewer.WebForms.dll 复制到项目中的 Bin 文件夹中。
  2. 删除您的参考。
  3. 从 bin 文件夹添加新引用。

我希望这会有所帮助。

于 2017-12-12T13:37:36.783 回答
1

我对不同的包有同样的错误。我的问题是一个依赖项目引用了不同的版本。我将它们更改为相同的版本,一切都很好。

于 2017-06-03T22:47:12.227 回答
1

I had this error when going from version 10.0.0.0, i.e. "Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

to version 11.0.0.0, i.e.

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

It took a while until I understood that not only the version was changed but also the public token key, as you can see above.

于 2016-10-20T12:35:36.470 回答
0

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

您可以在本地 Web 应用程序的 bin 目录中找到此 dll 文件。

于 2013-05-11T04:48:24.640 回答
0

我的 DevExpress 试用版已过期。尝试再次更新它。

于 2018-05-24T09:15:28.993 回答
0

为了使用来自服务器的数据在服务器上运行报表查看器

A)转到项目属性---->选择参考----->添加参考

1)导入(Microsoft.ReportViewer.Common.dll)----->(路径“C:\Program Files (x86)\Microsoft Visual Studio 10.0\ReportViewer”)

2)导入(Microsoft.ReportViewer.ProcessingObjectModel.dll)----->(路径“C:\Windows\Assembly\GAC_MSIL\Microsoft.ReportViewer.ProcessingObjectModel”)

3)导入(Microsoft.ReportViewer.WebForms.dll)----->(路径“C:\Program Files (x86)\Microsoft Visual Studio 10.0\ReportViewer”)

B)在上述三个 DLL 中,将其“Local Copy”设置为 True,以便在构建部署包时将其复制到“Bin”文件夹。

C)发布解决方案

D)之后在“File Zilla”软件的帮助下将所有文件连同“Bin”文件夹上传到“Web Server”。

E)这将在服务器上安装 DLL,因此客户端不需要“Report Viewer.dll”。

这对我有用。

于 2019-06-13T09:38:35.790 回答