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

问题描述 投票:44回答:13

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

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

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

asp.net reporting-services reportviewer
13个回答
60
投票

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

ReportViewer 2012 Update 'Gotcha' to be aware of

我安装了更新SQLServer2008R2SP2

我下载了ReportViewer.msi,需要安装Microsoft® System CLR Types for Microsoft® SQL Server® 2012 (look halfway down the page for installer)

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


0
投票

我的解决方案是:

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

我希望这可以提供帮助。


0
投票

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


0
投票

更新ReportViewer应该有效。使用以下说明从Nuget Package Manager控制台安装更新的ReportViewer。

安装包Microsoft.ReportingServices.ReportViewerControl.WebForms

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

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


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”。

这对我有用。


32
投票

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

enter image description here


22
投票

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


8
投票

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

  • 来自C:\Program Files (x86)\Microsoft Visual Studio 12.0\ReportViewer的Microsoft.ReportViewer.WebForms.dll
  • 和来自C:\Program Files\Microsoft Office\Office15\ADDINS\PowerPivot Excel Add-in的Microsoft.reportviewer.common.dll

进入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>

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

希望这可以帮助。


1
投票

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


1
投票

从版本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”

我花了一段时间才知道不仅版本被更改,而且还有公共令牌密钥,如上所示。


1
投票

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


0
投票

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

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


0
投票

我在旧的webforms应用程序中遇到此错误。事实证明,标记中有一条线导致了这个问题。我删除了它,错误消失了。

<%@ Register assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" namespace="Microsoft.Reporting.WebForms" tagprefix="rsweb" %>
© www.soinside.com 2019 - 2024. All rights reserved.