Winforms无法在VS2012中加载文件或程序集“Microsoft.ReportDesigner,Version = 10.0.0.0”

时间:2013-10-10 04:50:43

标签: .net vb.net winforms visual-studio-2012 report-viewer2010

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

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

  

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

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

enter image description here

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

Bottomline,我如何使用ReportViewer 10.0.0版。在VS2012的设计时没有设计时错误的问题?

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

P.S。我还测试了VS2010中的ReportViewer控件,在设计时使用它没有问题。

[UPDATE]

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

enter image description here

6 个答案:

答案 0 :(得分:10)

我遇到了同样的问题。我能够通过以下解决方法修复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并打开您的项目。

答案 1 :(得分:6)

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

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

我删除了删除的引用Microsoft.ReportViewer.WinForms然后添加了引用Microsoft.ReportViewer.WinForms哪个版本是v11.0.0.0

希望它有所帮助。

答案 2 :(得分:2)

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

答案 3 :(得分: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

答案 4 :(得分: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

答案 5 :(得分:0)

使用以下路径添加引用: C:\的Windows \组件\ 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