我有一个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
答案 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'文件夹中的引用。