SSRS - 报告查看器编译错误

时间:2017-01-10 02:55:46

标签: c# asp.net webforms ssrs-2008

当我想使用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文件???

谢谢。

1 个答案:

答案 0 :(得分:0)

问题与丢失的DLL文件完全无关,相反它应该与相同目录(%Windows%\ assembly)中不同DLL文件中存在的相同ReportViewer命名空间相关。请尝试以下解决方案:

  1. 检查ReportViewer目录中的旧版_bin_deployableAssemblies。删除与其相关的所有文件,并使用Microsoft.ReportViewer.11.0引用。

  2. 检查web.config文件中Microsoft.ReportViewer.WebForms命名空间的重复声明,如果存在则删除较旧的声明。

  3. 在web.config文件中添加qualifyAssembly元素:

    <qualifyAssembly partialName="Microsoft.ReportViewer.WebForms" fullName="Microsoft.ReportViewer.WebForms,version=11.0.0.0,culture=neutral,publicKeyToken=89845dcd8080cc91" />
    
  4. 如果问题仍然存在,请删除与Microsoft.ReportViewer.WebForms命名空间相关的所有引用,清除整个解决方案(删除引用旧版本的DLL文件),添加具有最新版本的新引用,然后重建解决方案文件。此外,您可以尝试从汇编目录中删除/卸载冲突的DLL文件之一。

  5. 注意:请记住,两个版本(10.0和11.0)都有不同的PublicKeyToken属性值,因此bindingRedirect节点中的dependentAssembly技巧不起作用。

    CS0433的相关问题:

    C#: The type 'Microsoft.Reporting.WebForms.ReportViewer' exists in both ReportingServicesWebUserInterface.dll and Microsoft.ReportViewer.WebForms.dll

    The type 'Microsoft.Reporting.WebForms.ReportViewer' exists in both