VS2017 Enterprise 15.9.11快速操作菜单缺失提取接口功能求助
嘿,结合你用的VS2017 Enterprise 15.9.11和最新版Resharper的环境,我帮你梳理几个可能导致Extract Interface在快速操作菜单里失踪的原因:
Resharper重构设置被隐藏/禁用
Resharper会接管VS的部分重构功能,有可能Extract Interface被设置为不在VS快速操作里显示。你可以打开Resharper > Options,导航到Code Editing > Refactorings > Extract Interface,检查这个重构是否处于启用状态,同时看看有没有勾选类似“Hide in Visual Studio's Quick Actions menu”的选项,要是有的话取消勾选就行。当前类不符合重构条件
不是所有类都能提取接口:- 静态类没法生成接口(接口里不能有静态成员);
- 有些特殊场景的嵌套类,Resharper的重构支持可能受限;
- 虽然密封类(
sealed)理论上可以提取接口,但偶尔也会出现识别异常,你可以先确认类的修饰符和结构是否符合常规要求。
VS与Resharper的集成出了问题
试试这几个操作:- 暂时禁用Resharper(
Resharper > Suspend),然后按Ctrl + .看看VS原生的Extract Interface是否出现。如果原生功能正常,那肯定是Resharper的设置或集成问题; - 重置VS的设置:
Tools > Import and Export Settings > Reset all settings,重启VS后再测试; - 检查Resharper的性能向导(
Resharper > Options > General > Performance Guide),看看有没有提示集成相关的异常。
- 暂时禁用Resharper(
Resharper版本与VS2017不兼容
你提到是“最新版Resharper”,但Resharper的新版本可能已经停止对VS2017的支持了。比如目前JetBrains的Resharper新版主要适配VS2019及以上版本,旧版VS2017需要对应版本的Resharper。你可以核对下你安装的Resharper版本是否明确支持VS2017 15.9.11,如果不兼容,得降级到适配的Resharper版本。项目类型不支持该重构
如果你操作的是特殊类型的项目(比如非.NET框架的项目、一些小众模板项目),Resharper可能不提供Extract Interface的重构支持。确认下项目的目标框架和类型是否在Resharper的支持范围内。
内容的提问来源于stack exchange,提问作者pantonis

