2017-02-24 27 views
3

我正在使用ReSharper 2016.3.2。它很好地工作,但我遇到了一个奇怪的问题,code cleanup功能不可用于UnityConfig.cs。所述Refactor上下文菜单被禁止,清理热键显示以下信息:Resharper代码清理在Unityconfig.cs上不可用

组合键(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); 
} 
+0

你能否提供一些UnityConfig.cs的更多细节?该文件包含哪些内容,它来自哪里,是否来自NuGet包? – citizenmatt

+0

@citizenmatt我用更多的细节更新了这个问题 – Szeki

+0

@Szeki当一个文件来自nuget包时,它看起来类似于https://youtrack.jetbrains.com/issue/RSRP-371787。所以尝试从packages.config文件中删除“Unity”记录 –

回答

2

这是因为代码来自一个NuGet包。 ReSharper将会禁用Nuget软件包中代码中的分析和其他功能,因为这个想法不是用户代码 - 它是由其他人编写的第三方,所以ReSharper不应该将它应用到它。另外,我不确定,但我认为如果nuget软件包已更新,该文件可能会被覆盖。

+0

Unity确实是一个NuGet,但配置它的文件并不是通过添加该包来实现的。 'UnityConfig.cs'是由我创建的。 – Szeki

+0

我不确定为什么它被标记为禁用,除非有一个恰好具有相同名称的内容文件的包。无论哪种方式,您都应该能够右键单击滚动条中的状态图标并恢复分析。 – citizenmatt

+0

@citizenmatt你是什么意思的“滚动条图标”? – sprinter252

0

I重新启动的视觉工作室,它解决了问题。