【问题标题】:Could not load file or assembly 'Microsoft.ReportViewer.Common, Version=11.0.0.0无法加载文件或程序集“Microsoft.ReportViewer.Common,版本=11.0.0.0
【发布时间】:2014-03-07 15:03:53
【问题描述】:

我最近将我的 n 层解决方案从 .NET 3.5 vs 2008 升级到 4.5 Visual Studio 2012。除了水晶报告之外,一切都很好,我必须从以下链接http://downloads.businessobjects.com/akdlm/cr4vs2010/CRforVS_13_0_5.exe 为 Visual Studio 2012 安装新的运行时水晶报告。 安装上述软件包后,我必须解决一些不推荐使用的功能和属性 CrystalViewer 和之后报告在开发环境中正确呈现 (Windows 7 64 位、SQL Server 2005、Visual Studio 2012)。当我在测试环境 windows server 2008 R2 中部署包时 应用程序因抛出错误而无法加载 无法加载文件或程序集 Microsoft.ReportViewer.WebForms, Version=11

我设法通过复制 DLL 解决了 ReportViewer.WebForms 错误 从 C:\Program Files (x86)\Microsoft Visual Studio 11.0\ReportViewer 到解决方案的 bin 文件夹并设置属性 copylocal = true 并部署包。之后我收到错误 Could not load file or assembly 'Microsoft.ReportViewer.Common, Version=11.0.0.0 。我试图在我的机器上搜索那个 DLL 但不能。当项目在 Visual Studio 中运行时,在 Debug-> Windows->Module 中,该文件未列出,但是在全局程序集缓存中安装了该文件,但我不知道它是如何安装到全局缓存和从哪里 。我找到了一个解决方案,我必须从 microsoft 包安装 ReportViewer.msi,但如果我安装此包,它会要求我安装我不想安装的 SQL Server 2012。任何人都可以帮我解决这个问题。谢谢

【问题讨论】:

    标签: c# asp.net .net visual-studio-2012 reporting-services


    【解决方案1】:

    不知道这是否对任何人都有好处,但搜索所有这些 dll:

    • Microsoft.ReportViewer.Common.dll
    • Microsoft.ReportViewer.ProcessingObjectModel.dll
    • Microsoft.ReportViewer.WebForms.dll
    • Microsoft.ReportViewer.WinForms.dll
    • Microsoft.ReportViewer.DataVisualization.dll

    您在C:\Windows\assembly\GAC_MSIL\... 中找到它们,然后将它们放入您项目的引用中。

    对他们每个人说:本地副本,并检查 32 位或 64 位解决方案。

    【讨论】:

    • 很好的答案。这对我来说只添加了 MicrosoftReportViewer.CommonMicrosoft.ReportViewer.WebForms 并将 Copy Local 设置为 true。我想答案中列出的其他人的要求取决于使用的报告类型。
    • 谢谢,您为我的 WinForms 2013 c# 应用程序更改为 MicrosoftReportViewer.Common.dllMicrosoft.ReportViewer.WinForms.dll 的“本地副本”完成了这项工作!
    • 非常感谢!我正在从我们的实时服务器中拉下一个包,但在 Visual Studio 中找不到此参考。浏览到该文件位置,立即找到它们。
    • 我运行它来获取 GAC 的文件副本:@echo off cd c:\windows\assembly\GAC_MSIL xcopy。 C:\users_yourdirectory_\temp\GacDump /s /y
    • 你们太棒了
    【解决方案2】:

    您可以安装 Microsoft Report Viewer 2012 Runtime 并更改您的引用,使它们指向运行时安装的那些。

    http://www.microsoft.com/en-gb/download/details.aspx?id=35747

    我安装了运行时,但它没有要求 SQL Server 2012。在安装之前,请尝试卸载任何以前版本的报表查看器。

    【讨论】:

    • 谢谢。当我尝试在 Windows Server 2008 上安装 reportviewer.msi 时,它说“文件被阻止,因为它没有验证其发布者的有效数字签名。当我单击未知发布者时,检查证书,安装证书。它仍然没有工作。任何想法如何摆脱这个问题
    • 设法在windows server 2008上安装了reportviewer。dll错误消失了,但是水晶查看器中的报告页面仍然是空白的。
    • 如果您不想在服务器上安装它,还有一个同名的 NuGet 包,您可以将其添加到您的 Web 项目中。
    • 我在服务器中安装了一个 Web 应用程序,当我尝试访问该 Web 应用程序时,我得到了同样的错误。服务器是否需要安装 ReportViewer.msi?我可以在我的电脑上调试它,它工作正常。
    • 您可能还必须先安装“Microsoft® System CLR Types”,然后才能安装位于 here 的软件包。
    【解决方案3】:

    由于 Microsoft.ReportViewer.2012.RuntimeMicrosoft.ReportViewer.WebFormsMicrosoft.ReportViewer.CommonMicrosoft.ReportViewer.ProcessingObjectModel 库,只需在 PM 控制台上运行此命令:

    安装包 Microsoft.ReportViewer.2012.Runtime

    注意:如果您想完全删除旧的 Microsoft.ReportViewer.xxx 引用,可以从 Manage NuGet Packages>Installed Packages 菜单中删除它们,然后删除相关行来自项目中的packages.config 文件。之后,在项目建设期间它不会再卷土重来。

    希望这会有所帮助...

    【讨论】:

      【解决方案4】:

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

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

      我在 Visual Studio 2015 中遇到了这个问题。

      原因:

      缺少 Microsoft.ReportViewer.Webforms dll 的参考。

      可能的修复

      第一步:

      将“Microsoft.ReportViewer.Webforms.dll”添加到解决方案中。

      身份导航到 Nuget 包管理器控制台

      “工具-->NugetPackageManager-->包管理器控制台”。

      然后在控制台输入如下命令

      PM>安装包 Microsoft.ReportViewer.Runtime.WebForms

      然后它将在“..\packages\Microsoft.ReportViewer.Runtime.WebForms.12.0.2402.15\lib”(您的项目文件夹路径)中安装 Reportviewer.webforms dll

      和“..\packages\Microsoft.ReportViewer.Runtime.Common.12.0.2402.15\lib”中的 ReportViewer.Runtime.Common dll。 (你的项目文件夹路径)

      第二步:-

      删除“Microsoft.ReportViewer.WebForms”的现有引用。 我们需要在我们的解决方案中将这些 dll 文件称为“右键单击解决方案 > 参考 - > 添加参考 - > 浏览”。 从上述路径添加两个 dll 文件。

      第三步:

      更改 web.Config 文件以指向 Visual Studio 2015。 注释掉 Microsoft.ReportViewer.WebForms 和 Microsoft.ReportViewer.Common 版本 11.0.0.0 并取消注释 Microsoft.ReportViewer.WebForms 和 Microsoft.ReportViewer.Common 版本=12.0.0.0。如屏幕截图所示。

      Microsoft.ReportViewer.Webforms/Microsoft.ReportViewer.Common

      也可以参考下面的链接。

      Could not load file or assembly 'Microsoft.ReportViewer.WebForms'

      【讨论】:

      • 第 1 步为我完成了!
      【解决方案5】:

      你也可以下载nuget package

      【讨论】:

      • 该 NuGet 包是否包含 WebForms?
      • 看包-号
      【解决方案6】:

      我在 Winforms 上遇到了同样的问题。

      我的解决方案是:

      Install-Package Microsoft.ReportViewer.Runtime.Winforms
      

      【讨论】:

        【解决方案7】:

        只需安装 Microsot.ReportViewer.2012.Runtime nuget 包,如本答案所示https://stackoverflow.com/a/33014040/2198830

        【讨论】:

        • 对我来说最好的解决方案。另外,使用 nuget 它带有所有依赖项。谢谢
        【解决方案8】:

        在安装项目的先决条件中添加 Microsot.ReportViewer 2010 或 2012,如果它不存在于“C:\Windows\assembly\GAC_MSIL...”中,则首先安装 Report Viewer,安装后,它会安装安装项目

        【讨论】:

          【解决方案9】:

          在我的情况下,我的项目不需要“Microsoft.ReportViewer.Common.dll”程序集,所以我只是删除了所有引用(项目 -> 添加引用... -> ...)(所有要求来自自动删除 VS2013 的 Publish 选项卡)并且一切正常。

          【讨论】:

            【解决方案10】:

            我遇到了同样的问题。

            我的解决方案是:

            您必须具有相同的版本:Microsoft.ReportViewer.ProcessingObjectModel 在 C:\Windows\assembly\GAC_MSIL\Microsoft.ReportViewer.ProcessingObjectModel 中注册, 就像你在开发者服务器的 web.config 中注册一样:

            在我的情况下,我只在我的生产服务器中注册了 13. 版本,而我在开发服务器中注册了 12. 版本。

            解决方案是在生产服务器中安装版本 12。

            第 12 版。:

            https://download.microsoft.com/download/A/1/2/A129F694-233C-4C7C-860F-F73139CF2E01/ENU/x86/ReportViewer.msi

            然后我现在有了版本 12。在生产中,报告工作正常。

            *** 安装后记得重置 IIS

            【讨论】:

              【解决方案11】:

              我解决了这个问题,在 C:\Windows\assembly\GAC_MSIL\ 中搜索 dll 的文件并复制到部署项目的 bin 目录。这对我有用。

              【讨论】:

                【解决方案12】:

                虽然比较晚,但您可以通过以下链接从 nuget 手动下载所需的 DLL: https://www.nuget.org/packages/Microsoft.ReportViewer.Runtime.Common/12.0.2402.15

                打开文件 .rar 存档,提取 dll 并将它们手动复制到您发布的 bin 文件夹中。

                这个解决方案对我有用。希望有帮助!!

                【讨论】:

                  【解决方案13】:

                  我通过下载reportviewer.exe并安装它来解决它。 安装完成后,所有相关的程序集都会在 C:\Windows\assembly\GAC_MSIL 中,然后你可以在 web config 中引用它

                  【讨论】:

                    猜你喜欢
                    • 2017-12-07
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2019-02-24
                    • 2015-02-26
                    • 1970-01-01
                    相关资源
                    最近更新 更多