C# Compiler Warning 1685

给你一囗甜甜゛ 提交于 2019-11-28 08:52:11

LINQBridge makes me immediately suspicious. The entire intent of this is to provide extension attribute/methods etc for 2.0 users. If you have 3.5 (System.Core.dll), don't use LINQBridge. If you do need LINQBridge in 3.5 for some obscure reason (and I can't think of one), then you might have to use an extern alias. But I really doubt you need it!

Remco te Wierik

Another easy way to verify: In your code, temporarily use the class somewhere. Example:

System.Runtime.CompilerServices.ExtensionAttribute x = null;

When building, this will generate error:

The type 'System.Runtime.CompilerServices.ExtensionAttribute' exists in both 'c:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\System.Core.dll' and .....

And show you immediately the 2 sources causing the conflict.

Marc is almost certainly correct. Here's a way to verify

  1. Open Reflector.exe
  2. Add all of Non-System assemblies
  3. F3 and search for ExtensionAttribute

If it pops up anywhere besides System.Core then you know where it's coming from.

Another solution for this issue is to use a global alias for the whole assembly:

Reference -> Properties -> Aliases -> Replace 'global' with something else

FYI: I had the same problem and was able to resolve it by using Resharper's "Optimize References" command, and then removing all unused references. Not completely sure why that worked, but it did.

Another solution for this issue => Right click project -> Properties -> Build -> Treat warnings as errors -> None

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!