c# - 对删除重复引用一无所知

标签 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

谁能帮我追踪重复的引用?有什么地方可以看吗?我可以使用任何工具吗?谢谢!

最佳答案

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

更新

还有一些尝试:

首先尝试在 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,它看起来像:

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. 右键单击项目 > 选择“卸载项目”> 这次再次右键单击项目选择“编辑(项目名称)”。

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

    <Reference Include="System.Core" />

  3. 删除对 System.Core 的所有重复引用。

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

  5. 删除对 System.Core 的引用。通过 Assemblies > Framework 选项卡(或 .NET 选项卡,我相信在 VS 2012 之前)重新添加引用。

  6. 从第 1 步开始重新检查 MSBuild,如果问题仍然存在,请发布引用的 MSBuild 以及引用文件夹中程序集属性中可用的路径和运行时版本。

关于c# - 对删除重复引用一无所知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16401686/

相关文章:

c# - C# .NET 中的模糊日期时间选择器控件?

c# - 如何将 YAML 转换为 JSON?

c# - 奇怪的 LINQ 到实体异常

c# - 如何停止 ReSharper 删除对象初始化程序中的空格

c# - Resharper 将我的私有(private)方法设为静态的建议是否是一个很好的建议?

c# - 轻松地将整个类实例写入 XML 文件并读回

c# - 从枚举值中获取字符串的优雅方法?

c# - 在 C# 中的拆分字符串中声明变量并在这些字符串之间搜索数据库行

arrays - 从动态字符串数组中删除特定索引处的项目

visual-studio-2015 - CTRL+。不再工作