BC30560:'ExtensionAttribute'在名称空间'System.Runtime.CompilerServices'中不明确

man*_*phi 9 .net asp.net .net-4.0

我有asp.net项目(在.net 2.0中),我将项目转换为.net 4.0.在我成功构建项目之后,我在浏览器上启动了网站,它会抛出以下错误:

编译错误

描述:编译服务此请求所需的资源时发生错误.请查看以下特定错误详细信息并相应地修改源代码.

编译器错误消息:BC30560:'ExtensionAttribute'在命名空间'System.Runtime.CompilerServices'中不明确.

来源错误:

[没有相关的源代码行]

源文件:InternalXmlHelper.vb行:9

........

请给我一些想法来解决它.

Mar*_*ell 7

在.NET 2中使用C#3(或更高版本)编译器的扩展方法(对于LINQ等)的一个常见技巧是在正确的命名空间中定义您自己的ExtensionAttribute.

现在您已升级到更高版本的.NET,您需要删除此现在冗余的额外属性.找到代码中定义的位置并将其删除.还要检查LINQBridge等外部库 - 你不再需要它了.

找到它的一种方法是使用对象浏览器并搜索ExtensionAttribute.


小智 5

这就是我发现问题的方法.

另一种简单的验证方法:在您的代码中,暂时在某处使用该类.例:

System.Runtime.CompilerServices.ExtensionAttribute x = null;
Run Code Online (Sandbox Code Playgroud)

构建时,这将产生错误:

类型

"System.Runtime.CompilerServices.ExtensionAttribute"存在于'c:\ Program Files\Reference Assemblies\Microsoft\Framework\v3.5\System.Core.dll'中

和......

并立即向您显示导致冲突的两个来源.