当我想使用Visual Studio运行报表查看器时,会导致以下错误。
=============================================== ========================== 编译错误
描述:编译服务此请求所需的资源时发生错误。请查看以下特定错误详细信息并相应地修改源代码。
编译器错误消息:CS0433:类型 ' Microsoft.Reporting.WebForms.ReportViewer'存在于两者中 ' C:\ WINDOWS \组件\ GAC_MSIL \ Microsoft.ReportViewer.WebForms \ 10.0.0.0__b03f5f7f11d50a3a \ Microsoft.ReportViewer.WebForms.dll' 和 ' C:\ WINDOWS \组件\ GAC_MSIL \ Microsoft.ReportViewer.WebForms \ 11.0.0.0__89845dcd8080cc91 \ Microsoft.ReportViewer.WebForms.DLL'
来源错误:
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
private global::Microsoft.Reporting.WebForms.ReportViewer @__BuildControlReportViewerSummary() {
global::Microsoft.Reporting.WebForms.ReportViewer @__ctrl;
这是否意味着我错过了.dll文件???
谢谢。
答案 0 :(得分:0)
问题与丢失的DLL文件完全无关,相反它应该与相同目录(%Windows%\ assembly)中不同DLL文件中存在的相同ReportViewer
命名空间相关。请尝试以下解决方案:
检查ReportViewer
目录中的旧版_bin_deployableAssemblies
。删除与其相关的所有文件,并使用Microsoft.ReportViewer.11.0
引用。
检查web.config文件中Microsoft.ReportViewer.WebForms
命名空间的重复声明,如果存在则删除较旧的声明。
在web.config文件中添加qualifyAssembly
元素:
<qualifyAssembly partialName="Microsoft.ReportViewer.WebForms" fullName="Microsoft.ReportViewer.WebForms,version=11.0.0.0,culture=neutral,publicKeyToken=89845dcd8080cc91" />
如果问题仍然存在,请删除与Microsoft.ReportViewer.WebForms
命名空间相关的所有引用,清除整个解决方案(删除引用旧版本的DLL文件),添加具有最新版本的新引用,然后重建解决方案文件。此外,您可以尝试从汇编目录中删除/卸载冲突的DLL文件之一。
注意:请记住,两个版本(10.0和11.0)都有不同的PublicKeyToken
属性值,因此bindingRedirect
节点中的dependentAssembly
技巧不起作用。
CS0433的相关问题:
The type 'Microsoft.Reporting.WebForms.ReportViewer' exists in both