【问题标题】:Resharper code cleanup not available on Unityconfig.csUnityconfig.cs 上不提供 Resharper 代码清理
【发布时间】:2017-02-24 13:36:25
【问题描述】:

我正在使用ReSharper 2016.3.2。它工作得很好,但我遇到了一个奇怪的问题,code cleanup 功能不适用于UnityConfig.csRefactor 上下文菜单被禁用,清理热键显示以下消息:

组合键(Ctrl+E、Ctrl+C)绑定到当前不可用的命令(ReSharper_CleanupCode)。

我查看了 ReSharper 设置,Elements to skip 块是空的,它们存在的位置(搜索和导航、代码检查设置)。

如果我重命名文件,清理选项正常工作。对于其他 ...Config.cs 文件,清理选项也正常工作,因此似乎忽略了这个特定的文件名。

我的问题是:我在哪里可以禁用此行为?

更新

该文件用于配置DI容器,来自Unity Nuget

内容很简单,下面是一个骨架:

public static void Configure(HttpConfiguration httpConfig)
{
    var container = new UnityContainer();
    //register components

    var unityServiceLocator = new UnityServiceLocator(container);
    ServiceLocator.SetLocatorProvider(() => unityServiceLocator);
    httpConfig.DependencyResolver = new UnityDependencyResolver(container);
}

【问题讨论】:

  • 您能否提供更多关于UnityConfig.cs 的详细信息?文件中有什么内容,它在哪里,是否来自 NuGet 包?
  • @citizenmatt 我用更多细节更新了问题
  • @Szeki 当文件来自 nuget 包时,它看起来类似于 youtrack.jetbrains.com/issue/RSRP-371787。所以尝试从 packages.config 文件中删除“Unity”记录

标签: c# resharper code-cleanup


【解决方案1】:

这是因为代码来自 nuget 包。 ReSharper 将禁用作为 nuget 包一部分的代码中的分析和其他功能,因为它的想法是它不是用户代码 - 它是由其他人编写的第 3 方,因此 ReSharper 不应将您的样式应用于它。另外,我不确定,但我认为如果更新 nuget 包,该文件可能会被覆盖。

【讨论】:

  • Unity 确实是 NuGet,但配置它的文件不是通过添加该包来获得的。 UnityConfig.cs 是我创建的。
  • 我不知道为什么它被标记为禁用,除非有一个包碰巧有一个同名的内容文件。无论哪种方式,您都应该能够右键单击滚动条中的状态图标并恢复分析。
  • @citizenmatt “滚动条中的图标”是什么意思?
  • ReSharper 将图标添加到它分析的文档的滚动条顶部,即编辑器窗口的右上角。这是一个绿色勾号、黄色感叹号或红色错误符号。或者,如果文件没有被分析,一个暂停符号。右键单击该图标会弹出一个允许控制的菜单,例如暂停或恢复分析。
【解决方案2】:

我重新启动了 Visual Studio,它解决了这个问题。

【讨论】:

    猜你喜欢
    • 2012-05-21
    • 2011-06-01
    • 1970-01-01
    • 2010-12-03
    • 1970-01-01
    • 2014-09-23
    • 2017-07-08
    • 2011-03-05
    • 2016-05-20
    相关资源
    最近更新 更多