这与此问题有关:Call is ambiguous error using Linq
相同的项目,相同的错误。每次我尝试使用Linq的扩展方法时,我都会收到有关模糊引用的错误。例如;
listOfThings.Where(x => x.Foo == 1);
不会编译并返回错误,而
System.Linq.Enumerable.Where(listOfThings, x => x.Foo == 1);
运行正常。此外,当我编写System.Linq时......我在Resharper的Intellisense上看到了两个对System.Linq的引用;第一:
和第二名:
任何人都可以帮我跟踪重复的引用吗?我能看的任何地方?我可以用的任何工具?谢谢!
答案 0 :(得分:1)
这不一定是答案,但步骤太复杂,无法发表评论。
<强>更新强>
还有一些事情要尝试:
首先尝试在safe mode中运行visual studio。验证问题不是由插件引起的。
gacutil /l > C:\gac.txt
。检查System.Core的此文件内容。对于.NET 3.5,我有一个System.Core,它看起来像: System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL
我还有一个用于v4.0。我也安装了.NET 4.5。无论出于何种原因,这都没有向我的机器添加新的System.Core.dll(根据MSDN System.Core.dll仍然包含v4.5中的System.LINQ)。
请打开项目并向我们展示MSBUILD。您将寻找System.Core,它是包含System.LINQ的程序集。
右键单击项目&gt;选择“卸载项目”&gt;再次右键单击项目,选择“编辑(ProjectName)”。
现在查找对System.Core的引用。你有多少?它看起来像是:
<Reference Include="System.Core" />
删除对System.Core的任何重复引用。
重新加载项目。如果问题仍然存在......
删除对System.Core的引用。通过程序集重新添加引用&gt;框架选项卡(或者我相信在VS 2012之前的.NET选项卡)。
从步骤1开始重新检查MSBuild,如果问题仍然存在,请在引用文件夹中发布引用的MSBuild以及程序集属性中可用的PATH和RUNTIME VERSION。