s-s-rS - 报告查看器编译错误

Posted

技术标签:

【中文标题】s-s-rS - 报告查看器编译错误【英文标题】:s-s-rS - Report Viewer Compilation Error 【发布时间】:2017-01-10 02:55:45 【问题描述】:

当我想用 Visual Studio 运行报表查看器时,会导致以下错误。

================================================ =========================== 编译错误

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

编译器错误消息:CS0433:类型 'Microsoft.Reporting.WebForms.ReportViewer' 存在于两者中 'c:\Windows\assembly\GAC_MSIL\Microsoft.ReportViewer.WebForms\10.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'

来源错误:

[System.Diagnostics.DebuggerNonUserCodeAttribute()]
       private global::Microsoft.Reporting.WebForms.ReportViewer @__BuildControlReportViewerSummary() 
          global::Microsoft.Reporting.WebForms.ReportViewer @__ctrl;

这是否意味着我缺少 .dll 文件???

谢谢。

【问题讨论】:

【参考方案1】:

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

    _bin_deployableAssemblies 目录中检查旧版本的ReportViewer。删除所有与之相关的文件,并使用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 属性值,因此 dependentAssembly 节点中的 bindingRedirect 技巧不起作用。

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

【讨论】:

以上是关于s-s-rS - 报告查看器编译错误的主要内容,如果未能解决你的问题,请参考以下文章

s-s-rS 错误 - 请求失败,响应为空

s-s-rS 报告查看器 + ASP.NET 凭据 401 异常

s-s-rS 2008 报告管理器错误

s-s-rS 报告服务 UAC 错误,已经尝试了一切

s-s-rS:操作已超时

在没有报告查看器的情况下将 s-s-rS 报告嵌入网页