【问题标题】:ReSharper: Namespace does not correspond to file locationReSharper:命名空间与文件位置不对应
【发布时间】:2012-03-12 16:28:48
【问题描述】:

我重命名了一个文件夹并更新了我的命名空间声明,但 ReSharper 6 声称命名空间应该反映重命名之前的状态。它在哪里存储文件位置数据?

【问题讨论】:

  • 我建议你删除所有*.ReSharper文件。 Resharper 将在没有“垃圾”的情况下从头开始重新创建它们。
  • 我以为我有。我想我应该再试一次。
  • 都在*.ReSharper 文件中。如果全部都被删除了,你仍然遇到命名空间问题,我相信它确实与你的文件夹结构有关......
  • 这也发生在我使用 Resharper 8.2.3 时。问题是它忽略了名称中带有空格的文件夹。所以MyProject>Service Contracts>Common 解析为MyProject>Common 而不是预期的MyProject>Service_Contracts>Common

标签: namespaces resharper-6.0


【解决方案1】:

检查以确保您的程序集名称与您的新命名空间相匹配。如果您已更改文件夹结构以匹配新命名空间,则在更新项目属性之前,您可能仍会看到 ReSharper 警报。

【讨论】:

  • 是的...项目文件,而不仅仅是 resharper 文件。
  • @Will S 在我找到你的帖子之前,这正是让我烦恼的地方。在 VS 中,转到项目 > [项目名称] 属性 > 应用程序并更改“程序集名称”(在您的情况下可能不需要)以及“默认命名空间”。一旦我这样做了,ReSharper 7.7.1 就不再抱怨命名空间了。
【解决方案2】:

正如delliottg's comment 所说,在Visual Studio 中,转到

Project > [project name] Properties > Application

并更改“程序集名称”以及“默认命名空间”

【讨论】:

    【解决方案3】:

    我的文件夹/命名空间也有这个问题,以上步骤都没有解决它。

    就我而言,我必须在 Visual Studio 中执行此操作:

    • 右键单击解决方案资源管理器中的“问题”文件夹以打开属性
    • 确保“命名空间提供程序”设置为 true

    这为我解决了 ReSharper 问题,并且我能够正常调整命名空间。

    【讨论】:

    • 我有一个文件夹,让我很伤心。 Resharper 一直告诉我将其添加到文件夹中具有相同名称的文件夹中。这是完美的解决方案。
    • 呃,Visual Studio 中又一个愚蠢的隐藏设置!
    【解决方案4】:

    根命名空间需要修改如下。

    【讨论】:

      【解决方案5】:

      我在 VS 2019 和 16.5.2 中使用 Resharper 2019.3.2,我遇到了类似的问题。

      在开发时,我首先在单个项目中确定命名空间层次结构,然后将项目拆分为单独的类库。在第一阶段,总是让子目录对应命名空间很方便。

      例如我的原型MeshTools.dll项目目前包含:

       Meshtools ........................ 3 cs-files in \MeshTools
         MeshTools.HeightField .......... 2 cs-files in \MeshTools\HeightField
         MeshTools.VectorTools .......... 3 cs-files in \MeshTools\VectorTools
      

      以上答案都假设每个项目有一个命名空间。手动重命名目录可能会混淆 Resharper,可以通过将 .csproj 文件中的默认程序集设置为正确的命名空间来修复。感谢您的提示。

      但是,就我而言,我有单个项目中有多个命名空间,解决方案目录中的每个命名空间都对应一个真实目录。当重命名出现问题时,设置默认程序集“Meshtools”不会影响 HeightField 和 VectorTools 的 ReSharper 行为。

      我用谷歌搜索了这个问题,并通过https://www.jetbrains.com/help/resharper/Refactorings__Adjust_Namespaces.html# 来了

      原来在解决方案目录 -> 属性上有一个右键单击选项。您将找到一个选项来决定解决方案目录是否为 NameSpace 提供者。当出现问题时,Visual Studio 会将字段重置为 False。将其设置回 True 并且 Resharper 将在需要时正确重构命名空间或文件位置..

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-04-24
        • 1970-01-01
        • 2015-09-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多