【问题标题】:Visual Studio 15 - Rename Error: No References were found in the selected scopeVisual Studio 15 - 重命名错误:在所选范围内未找到引用
【发布时间】:2016-02-26 14:22:22
【问题描述】:

重命名失败,但仅在我的一种解决方案中。

每次我尝试重命名变量/函数时,它都会提示更改名称,然后失败并出现以下错误:

在所选范围内未找到参考。选定的范围是整个解决方案,所以我怀疑有问题。

我找到了以下帖子:https://social.msdn.microsoft.com/Forums/vstudio/en-US/37deb1a5-daa5-47c7-ab50-ed8e57bcf111/rename-class-does-not-work-no-references-were-found-in-the-selected-scope?forum=visualstudiogeneral

但我担心重置设置会删除每个项目的当前设置。我只是不明白为什么重命名只是我正在研究的 4 个解决方案之一失败。

【问题讨论】:

  • 能否确认文件不是只读的,有些版本控制系统为文件添加了只读属性。
  • @ABKolan 其中一些被标记为只读。但是,取消标记它们不会让我重命名......还有其他想法吗?
  • 不知道这是否会有所帮助,但我遇到了与“在所选范围内未找到参考”类似的问题,我意识到我有一个额外(旧)副本我的一个 .当我尝试重新启动 Visual Studio 时打开 cpp 文件。我摆脱了这个额外的文件,重新启动了 Visual Studio,它工作了。
  • @Dunno:不幸的是,事实并非如此。但是,我认为这与将文件导入项目有关。我复制了它们,然后将它们放入其中。我认为这在某种程度上改变了它们的范围。我设法通过将范围扩展到包括外部项目来使其工作。不知道为什么它认为它们是外部的......

标签: c++ visual-studio visual-studio-2015


【解决方案1】:

正如我上面提到的,解决方案是扩大范围。我不确定为什么需要扩大范围。这些文件位于项目内部,属于该项目的版本控制范围。

【讨论】:

  • 通过从“当前解决方案”切换到“当前项目”使其工作。也没有任何意义 - 项目不是解决方案的一部分吗?
  • 我也注意到了这一点。在设置此功能的字符串时,似乎有人混淆了术语“项目”和“解决方案”,因为当我在我的单元测试项目中并将范围设置为“项目”时,它包括对例如的引用正在测试的类(在此解决方案的另一个项目中)。虽然......这并不能解释为什么当范围设置为“解决方案”甚至“解决方案(包括外部引用)”时它找不到任何东西
  • ...也许不是。当我实际应用重构时,它只更改了当前项目的引用。它没有改变类声明或任何东西。仍然,人们不得不想知道为什么它很难准确地找到它检查的引用作为其静态分析的一部分......
【解决方案2】:

按照您和其他人的建议扩展范围仅在 VS 实际识别您的引用的情况下才有效。 如果“查找所有引用”(在您喜欢的任何范围内)有效,那么重命名也将有效(如果您选择正确的范围)。

但很多时候(在我身上经常发生)这是 VS 中的一个错误,不幸的是,即使在今天,它仍然存在于 Visual Studio (Community) 2022 v17.0.5 中。它可以以奇怪的方式呈现自己,例如你可以重命名一些东西,但只能重命名一次。其他时候,您甚至不能重命名仅出现在连续两行中的单个局部变量。

更多信息可以从this 问题中找到,当 VS 无法跟踪引用时,我将引用唯一对我有用的解决方案

  1. 关闭所有 Visual Studio 实例
  2. 在您的解决方案中找到 .vs 隐藏文件夹。
  3. 删除整个隐藏的 .vs 文件夹。
  4. 重建解决方案

【讨论】:

    【解决方案3】:

    我遇到了同样的问题。但是当我更改搜索范围:整个解决方案(包括外部项目)时,效果很好。

    【讨论】:

    • 这个已经在其他已有答案中提到了(“解决办法是扩大范围”
    • 是什么让你的答案与众不同?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-06
    • 2013-11-27
    • 2018-10-09
    • 2018-12-14
    • 2014-05-28
    相关资源
    最近更新 更多