无法删除重复的引用

时间:2013-05-06 15:09:10

标签: c# linq resharper

这与此问题有关: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的引用;第一:

R# Intellisense 1

和第二名:

enter image description here

任何人都可以帮我跟踪重复的引用吗?我能看的任何地方?我可以用的任何工具?谢谢!

1 个答案:

答案 0 :(得分:1)

这不一定是答案,但步骤太复杂,无法发表评论。

<强>更新

还有一些事情要尝试:

首先尝试在safe mode中运行visual studio。验证问题不是由插件引起的。

  1. 查看此项目的其他计算机上是否存在此问题
  2. Reinstall 3.5 .NET框架(听起来像是在使用v3.5)
  3. 了解GAC中的内容: 在visual sstudio命令提示符下运行gacutil /l > C:\gac.txt。检查System.Core的此文件内容。对于.NET 3.5,我有一个System.Core,它看起来像:
  4. 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的程序集。

    1. 右键单击项目&gt;选择“卸载项目”&gt;再次右键单击项目,选择“编辑(ProjectName)”。

    2. 现在查找对System.Core的引用。你有多少?它看起来像是:

      <Reference Include="System.Core" />

    3. 删除对System.Core的任何重复引用。

    4. 重新加载项目。如果问题仍然存在......

    5. 删除对System.Core的引用。通过程序集重新添加引用&gt;框架选项卡(或者我相信在VS 2012之前的.NET选项卡)。

    6. 从步骤1开始重新检查MSBuild,如果问题仍然存在,请在引用文件夹中发布引用的MSBuild以及程序集属性中可用的PATH和RUNTIME VERSION。