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 - 报告查看器编译错误的主要内容,如果未能解决你的问题,请参考以下文章