29

在我的项目中,我有一个由许多其他类继承的类。我们称它为 ClassBase。

public class ClassInheritFromBase : ClassBase

当 ClassBase 被继承时,ReSharper会在 ClassBase 上引发“不明确的引用”警告,并且从 ClassBase 继承的新类中的任何内容都没有 IntelliSense 并收到无法找到它的警告。

该项目编译并运行良好。

如果我更改命名空间 ClassBase 所在的位置,然后更改继承类,他们会发现它很好并且 ReSharper 没有问题,IntelliSense 可以工作......直到它被编译。编译后,它又回到了模棱两可的参考警告和其他一切。

以前见过这种情况吗?如何解决?我在 JetBrains 错误跟踪中看到了一个类似这样的问题的条目,但他们将其关闭为无法重现。

4

13 回答 13

15

对于那些对此仍有疑问的人,(我仍然不时得到它)这是我为摆脱 ReSharper 中模棱两可的参考警告所做的步骤。

  1. 首先,我访问了我所有的类库,并确保对我的其他类库的所有引用都将Copy Local属性设置为 false。
  2. 在我实际收到不明确引用警告的项目中,我去了我的 bin 目录并删除了所有拥有自己项目的库的所有 .dll 和 .pdb 文件。
  3. 在新构建之后,或者在我的情况下,在 VS 中对 .dll 文件进行“更新参考”之后,来自 Resharper 的错误就消失了。

我在 Visual Studio 2008 中使用 Resharper 5.1,只引用了我正在使用的 dll,这就是我必须“更新引用”的原因

于 2011-01-20T08:33:01.257 回答
5

我正在使用 VS 2012 和 ReSharper 7,有时我发现了相同的行为。这些是对我有用的步骤:

  1. 清洁解决方案
  2. 关闭 Visual Studio
  3. 转到解决方案的根文件夹并找到一个名为 _ReSharper.[Name of your solution] 的文件夹并将其删除。
  4. 返回 Visual Studio,打开您的解决方案,重新创建文件夹,之后不再出现“模糊引用”错误。
于 2014-02-24T14:53:15.543 回答
3

我在 ReSharper 4.1 中看到了这个错误。当基类位于 App_Code 目录中时会发生这种情况。我不知道如何解决它;这很烦人,但代码仍然可以编译。

于 2008-11-04T22:43:49.020 回答
2

你可能真的有一个模棱两可的参考。在出现歧义引用错误的项目中,请务必签入您的项目引用。您可能有两次相同的引用,但范围通过不同的命名空间。就我而言,有两个,但路径不同(示例):

XXX.YYY.ZZZ.myassembly
ZZZ.myassembly

确保你的参考文献中没有这种东西。

于 2015-07-06T19:57:27.077 回答
1

这是 ReSharper 4.1 中的一个错误,并在后来的夜间版本之一中得到修复。

在http://www.jetbrains.net/confluence/display/ReSharper/ReSharper+4.0+Nightly+Builds下载最后一个夜间构建 。

于 2008-12-15T21:29:03.923 回答
1

ReSharper -> 选项 -> 常规:单击 #Clear Caches # 按钮。

于 2010-08-11T13:32:39.030 回答
1

对我来说,这是我不使用缓存的解决方案文件夹的问题。将其从 TEMP 位置更改为解决方案解决了我的问题。

于 2011-02-26T11:35:36.927 回答
1

我删除了解决方案根目录中的 _ReSharper.SolutionName 文件夹并重新启动。

我正在使用带有 ReSharper 5.1 的 Visual Studio 2010... 清除缓存没有帮助(ReSharper -> 菜单选项->常规-> #Clear Cache#)。

于 2011-08-26T08:19:57.340 回答
0

我遇到了同样的问题。我遇到的问题是由自定义构建提供程序(来自我正在使用的名为PageMethods的开源库)以及我的所有 .aspx 页面都继承自 App_Code 文件夹中的 BasePage 类这一事实引起的。

我无法使用任何 ReSharper 构建来处理我的项目(4.1.933、4.1.943(最新)或 4.5)。最新 ReSharper 构建中的修复修复了“不明确的参考”问题,但破坏了自定义构建提供程序。

我可以让构建提供程序和基类都与 ReSharper 一起使用的唯一方法是将基类放入单独的类库中。

以下是似乎与此问题相关的已记录 Jira 错误:

于 2009-03-03T12:00:02.557 回答
0

我在引用 AppCode 文件夹中的 C# 类时遇到了同样的问题。

我通过将 ReSharper 升级到 4.5 版(从 4.1 版)解决了这个问题。

这是一个非常简单的升级,我只需要从 JetBrains 网站 ( http://www.jetbrains.com/resharper/download/ ) 获取最新版本并运行它。

我不必卸载以前的版本(v4.1)。我不必重新输入我现有的许可证密钥。

现在可以正确识别所有引用,并且我可以按预期导航到这些类。

于 2009-10-28T11:51:27.670 回答
0

我在 ReSharper 5.1 上遇到了同样的问题,并通过重新启动 Visual Studio 2010 解决了这个问题。

于 2011-03-09T07:18:30.710 回答
0

使用 VS 2013 Premium & Resharper 8.1,并且在 ASP.Net 项目中遇到了这个问题。

对我有用的解决方案:

  1. 做一个干净的解决方案。
  2. 打开有问题项目的引用
  3. 在每个引用解决方案中另一个项目的引用上,设置Copy Local = false.
  4. 尝试重建解决方案。您可能会得到未解决的参考错误——这很正常。
  5. 将每个引用设置回Copy Local = true(在适当的情况下)
于 2014-03-14T16:56:49.303 回答
0

使用 R# 2019.2.3 并使用新的 SDK .csproj 格式(在 .NET 引用、NUGET 包和项目依赖项之间拆分引用),R# 仍倾向于在程序集下添加项目引用,即使存在已经是依赖项下的项目参考。这会导致歧义错误,但可能很难注意到,因为引用位于两个不同的位置。查找出现在“程序集”下的任何项目引用并将其删除。

于 2019-11-14T19:29:58.373 回答