两者中都存在“Microsoft.Reporting.WebForms.ReportViewer”类型

时间:2013-02-22 10:19:22

标签: asp.net

我有一个ASP.NET应用程序,它引用版本9.0.0.0的Microsoft.ReportViewer.WebForms,我改为引用版本11.0.0.0的Microsoft.ReportViewer.WebForms。现在当我在其中两台机器上运行我的应用程序时,我得到了以下错误

编译错误

描述:在编译为此请求提供服务所需的资源期间发生错误。请查看以下特定错误详细信息并相应地修改源代码。

编译器错误消息: CS0433:“Microsoft.Reporting.WebForms.ReportViewer”类型存在于'c:\ Windows \ assembly \ GAC_MSIL \ Microsoft.ReportViewer.WebForms \ 9.0.0.0__b03f5f7f11d50a3a中\ Microsoft.ReportViewer.WebForms.dll'和'c:\ Windows \ assembly \ GAC_MSIL \ Microsoft.ReportViewer.WebForms \ 11.0.0.0__89845dcd8080cc91 \ Microsoft.ReportViewer.WebForms.DLL'

我确保我的web.config版本号中的所有地方都更新为11.0.0.0

2 个答案:

答案 0 :(得分:5)

我尝试在web.config中添加dependentAssembly,但这没有帮助。

<dependentAssembly>
  <assemblyIdentity name="Microsoft.ReportViewer.WebForms" publicKeyToken="89845dcd8080cc91" />
  <bindingRedirect oldVersion="8.0.0.0-10.0.0.0" newVersion="11.0.0.0" />
</dependentAssembly>

然而,由于PublicKeyToken在11.0.0.0 dll中已更改,因此无效。

最后,我能够通过在web.config

中添加qualifyAssembly节点来解决此问题
<qualifyAssembly partialName="Microsoft.ReportViewer.WebForms" fullName="Microsoft.ReportViewer.WebForms,version=11.0.0.0,culture=neutral,publicKeyToken=89845dcd8080cc91" />

答案 1 :(得分:0)

我的解决方案。 我在_bin_deployableAssemblies文件夹中有旧版本的ReportViewer。我从中删除了所有内容,并使用'packages \ Microsoft.ReportViewer.11.0.3366.16 \ lib'文件夹中的引用。