13

这让我发疯了。我在 VS2012 中构建了一个针对 .NET 4.5 的 winforms 应用程序。在一些表单上,我必须使用 ReportViewer。起初,我在 2012 年使用 ReportViewer(版本 11.0.0.0)。一切正常。但是,我的客户还不想在他们的工作站上安装这个版本,因为这个版本使用 CLR Types SQL 2012。不要问我为什么,但我现在必须接受这个。

所以我决定使用之前的reportviewer 10.0.0.0 版本。我下载了再分发包并安装了它。我还在VS2012中将它添加到我的工具箱中,并删除了我的项目中已经引用的reportviewer dll。但是,当我在表单上拖动版本 10 报告查看器时,我收到以下错误:

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

应用程序运行时没有错误,但我在使用此报表查看器控件的表单上没有设计时支持,如图所示。我想摆脱错误。

在此处输入图像描述

我检查了 GAC,找不到提到的 Microsoft.ReportDesigner。它适用于版本 9.0.0.0 和 11.0.0.0,但不适用于 10.0.0.0。

底线,如何在 VS2012 的设计时使用 ReportViewer 版本 10.0.0.0 而不会出现设计时错误的问题?

框架:.NET 4.5 应用程序类型:winforms 语言:vb.net Visual Studio:2012 版控件:ReportViewer 10.0.0.0 SP 1

PS我在VS2010中也测试了ReportViewer控件,在VS2010设计时使用没有问题。

[更新]

当我尝试在 VS2012 中的表单上添加 ReportViewer 时的确切错误是:

在此处输入图像描述

4

6 回答 6

11

我有同样的问题。我能够通过以下解决方法修复 VS 2012 设计器。我怀疑这是正确的方法,但它有帮助,我现在没有找到更好的方法。

  1. 关闭 Visual Studio 2012

  2. 转到 C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies 文件夹并将所有报表查看器程序集(文件名以“Microsoft.ReportDesigner.”开头,版本为 10.0.0.0)复制到 C :\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PrivateAssemblies。在执行此操作之前备份它。

  3. 启动 Visual Studio 2012 并打开您的项目。

于 2013-10-27T14:04:41.147 回答
8

亚历克斯的解决方案是错误的,它有效但不正确。

简单的解决方案是用当前版本的 dll 替换旧的参考

我删除了删除参考 Microsoft.ReportViewer.WinForms 然后添加参考 Microsoft.ReportViewer.WinForms 版本是 v11.0.0.0

希望能帮助到你。

于 2014-01-20T14:51:03.470 回答
2

Alex 的修复工作有效,但您最终会使用以前版本的控件。要获取报表查看器控件的 v11,请关闭您的项目(如果它已打开),然后浏览到 c:\windows\assembly。复制 Microsoft.ReportViewer.Common.Resource 版本 11.0.0.0 的公钥令牌的值。打开您的项目文件并搜索对 ReportViewer 10.0.0.0 版本的引用。将版本更改为 11.0.0.0,将公钥更改为您复制的值,然后保存文件。打开项目后,ReportViewer 引用应该指向正确的版本。

于 2013-11-06T20:47:19.260 回答
2

从CodeProject得到答案(见下面的链接)

它不需要许可证,它是可再发行的

2008 http://www.microsoft.com/en-us/download/details.aspx?id=6576[^]

2010 http://www.microsoft.com/en-us/download/details.aspx?id=6442[^]

http://www.codeproject.com/Questions/399003/Could-not-load-file-or-assembly-Microsoft-ReportVi

于 2014-04-07T05:09:39.587 回答
0

添加以下路径的引用:C:\Windows\assembly\GAC_MSIL\Microsoft.ReportViewer.Common\12.0.0.0__89845dcd8080cc91\Microsoft.ReportViewer.Common.dll

C:\Program Files (x86)\Microsoft Visual Studio 14.0\ReportViewer\Microsoft.ReportViewer.WinForms.dll

于 2017-11-05T10:12:21.323 回答
0

在您的站点 bin 中上传 dll

从这个窗口文件夹(C:\Program Files (x86)\Microsoft Visual Studio 10.0\ReportViewer)。我已经使用它并且它有效 Microsoft.ReportViewer.Common.dll Microsoft.ReportViewer.WebForms.dll Microsoft.ReportViewer.WinForms.dll

于 2017-09-23T13:39:26.083 回答