安装指南
在安装之前,您可能需要检查系统要求。
ReSharper是一个VisualStudio扩展。它支持VisualStudio2010,2012,2013,2015和2017.安装完成后,您将在VisualStudio的主菜单中找到新的ReSharper条目。大多数ReSharper命令都可以在这个菜单中找到。但是,许多功能都集成在编辑器,解决方案资源管理器和其他VisualStudio窗口中。大多数ReSharper命令也可以通过键盘快捷键进行操作。
从ReSharper9.0开始,所有JetBrains.NET产品都作为ReSharperUltimate在统一安装程序中提供。在安装程序中,您可以选择要安装和更新的产品。只需点击几下鼠标即可完成新的安装。但是,如果您从以前的版本升级(特别是版本8.2或更低版本),则某些细节可能不明显。默认情况下,JetBrains.NET产品已安装到当前的用户配置文件中,但您也可以为所有用户安装特定的工具配置。本主题将帮助您简化安装过程。
处理以前的版本
ReSharper不允许你在同一台机器上的VisualStudio版本中安装不同的版本。但是,可以在不同的VisualStudio版本中安装几个不同的版本。
同样重要的是要注意,如果您安装多个JetBrainsdotNet产品,某些版本可能不兼容。例如,在同一个VisualStudio版本中安装ReSharper9.0和dotTrace5.0是不可能的。例如,如果您有ReSharper8.2和dotCover2.5,然后决定在相同的VisualStudio版本中将dotCover升级到版本3.0,则安装程序不仅会删除dotCover2.5,还会删除ReSharper8.2。
如果您的计算机上安装了先前版本的ReSharper,安装程序将自动删除冲突版本(以前在同一VisualStudio版本中安装)。如有必要,安装程序还可以删除无冲突的版本。
如果安装程序检测到任何JetBrainsdotNet产品的先前安装,则显示详细信息链接将出现在安装程序窗口的右上角。点击此链接检查现有版本并查看安装程序将如何处理它们。
例如,在下面的插图中,只有一个版本冲突。ReSharper9.0没有冲突,因为它安装在VisualStudio2013中,而当前安装的目标是VisualStudio2012和2015.在VisualStudio2012和2015中的以前安装应该被删除,因此Skip旁边的选项被禁用。
执行自定义安装
- 运行安装程序文件。
- 点击选项在安装程序对话框的底部。
- 在安装向导的此页面上,单击重新启动。安装程序将以提升的权限重新启动。
- 安装程序重新启动后,再次单击选项。
- 选择管理模式或所有用户复选框,然后单击返回。
- 阅读并接受许可协议,然后单击下一步。
- 如果您选择了所有用户模式,则所选产品将安装到"程序文件"文件夹中。
- 如果您选择了管理模式,则在打开的向导页面上,您将能够复制其中一个安装命令,或者单击计划安装以准备将机器范围的安装安装到当前计算机上的用户配置文件。
安装目录
从ReSharper9.0,dotCover3.0,dotTrace6.0和dotPeek1.3开始,JetBrainsdotNet产品默认安装在以下目录中:
%LOCALAPPDATA%\JetBrains公司\安装
如果您已经使用All用户模式安装了ReSharper,安装目录是:
%PROGRAMFILES(x86)%\JetBrains\Installationsfor64位系统和
%PROGRAMFILES%\JetBrains\Installationsfor32位系统。安装到VisualStudio实验实例中的产品目录将实验实例名称作为后缀。
第一步
ReSharper是一款以键盘为中心的产品。它的大部分操作都具有默认的键盘快捷方式,如有必要,您可以为其任何命令分配自定义快捷方式。
因此,当ReSharper准备就绪时,它会提示您选择两种默认键盘快捷方式之一:
在学习此帮助时,请使用帮助页面顶部的快捷方式选择器根据您的首选快捷方式在文本中显示快捷方式。
Environment|Keyboard&Menus设置;
有关更多信息,请参阅配置键盘快捷键
快速入门
在VisualStudio中安装ReSharper时,您将看到以下更改:
- 出现在VisualStudio菜单栏中的ReSharper菜单包含除了仅在上下文中可用的所有命令,例如上下文操作或快速修复。
- 请注意,仅当JetBrainsdotCover和JetBrainsdotTrace与ReSharper一起安装时,Cover和Profile子菜单才会出现。
- 特定命令之后出现的许多工具窗口。所有ReSharper工具窗口在ReSharper|Windows设置。
- ReSharper的命令在编辑器,解决方案资源管理器和其他VisualStudio窗口的上下文菜单中可用。
请注意,默认情况下,ReSharper还会在这些菜单中隐藏重写的VisualStudio项目(例如重构和导航命令)。如果要保留原始的VisualStudio菜单项,请清除HideoverriddenVisualStudiomenuitems,在Environment|Keyboard&Menus设置。 - VisualStudio选项,允许您随时暂停和恢复ReSharper。通常情况下,你不需要这样做。但是,如果在处理大型解决方案时遇到性能问题,暂停ReSharper可能有助于提高性能。
在VisualStudio选项中,您可以将快捷方式绑定到该ReSharper_ToggleSuspended命令,并使用此快捷方式快速挂起/恢复ReSharper。
- 编辑器和状态栏中的很多变化:
- 状态指示器可帮助您立即查看当前文件是否有错误或警告。
- 修复弹出窗口显示为非导入类型。按下Alt+Enter或单击此弹出窗口就足够了,ReSharper会为文件中的所有类型添加缺少的指令。有关更多信息,请参阅导入缺少命名空间。
- 低优先级代码问题(在这种情况下,与未使用的公共成员相关的建议)呈灰色。
- 一个中等优先级的代码问题(在这种情况下,符号名称不符合命名风格的警告)用蓝色下划线突出显示。
- 对应于建议问题(3)的标记栏上。
- 在标记栏上显示与错误问题(8)对应的标记。
- 如果ReSharper有任何建议,可以在插入符号的左侧出现一个动作指示符。
- 高优先级代码问题(在这种情况下,与未解决的符号和不正确的返回类型有关的错误)用红色文本和红色下划线突出显示。
- 标记栏上显示与警告问题(4)相对应的标记。
- 通过按下或点击动作指示器(7)打开的动作列表Alt+Enter包含针对该问题的快速修正列表。
- 状态栏中会显示插入符号处的问题简短说明。您也可以将鼠标悬停在突出显示的代码上或标记栏上的问题标记上查看代码问题的说明(5,6,9)
- 如果启用了解决方案范围分析,则ReSharper允许您查看更多代码问题。在这个例子中,它检测到未使用的公共成员(3)并通知解决方案的其他文件中的错误。您可以单击解决方案范围的分析图标来浏览检测到的问题。
- 您也可以使用快速启动框查找并执行ReSharper命令:
-
浏览和搜索
ReSharper提供了很多导航和搜索功能。
跳到声明
按下Ctrl键并将鼠标悬停在代码上。你会看到在其他地方定义的所有符号在聚焦时都会被加下划线。您可以在按住Ctrl键的同时单击任何符号直接导航到其声明。如果符号是在当前解决方案中定义的,则ReSharper会打开相应的文件并将该插入符号添加到声明中。如果符号是在编译的库中定义的,则ReSharper根据您的首选项打开它。
有关更多信息,请参阅转到声明。
寻找用法
要以相反方向导航,即查找使用符号的解决方案中的所有位置,请按Shift+F12。ReSharper将快速查找并显示符号的所有用法。有关更多信息,请参见查找用法。
检查可用的导航操作
另一个方便的导航快捷方式是Alt+`。当您在任何符号上按下它时,ReSharper会向您显示所有可用的导航选项:
有关更多信息,请参阅导航至。
在解决方案中找到任何东西
如果您需要在解决方案中找到任何内容,请按Ctrl+T。只要您调用此功能,就会立即显示建议列表,并且最初包含您最近的文件和导航项目。您可以开始输入以查找类型,符号,文件,最近的编辑,最近的文件和最近查看的方法。有关更多信息,请参阅全部/类型。
在解决方案树中查找当前文件
当导航命令将您带入新文件时,您可能想要查看它在解决方案资源管理器中的位置。只需按下Shift+Alt+L,解决方案资源管理器就会滚动到当前文件并突出显示它。有关更多信息,请参阅在Solution/AssemblyExplorer中查找当前文档
在编辑器中编码
当你在编辑器中工作时,一大堆代码编辑助手就在你的手中。这里有几个。
代码完成(IntelliSense)
所有完成功能都支持CamelHumps-也就是说,您只需输入大写字母即可完成任何项目。
ReSharper以更高级的功能补充和扩展了VisualStudio的本地代码完成(IntelliSense)。例如,它会根据您的输入缩小建议列表的范围,自动导入选定的类型和扩展方法,在完成方法名称时添加括号,根据类型指定变量和字段名称等等。
如有必要,您可以通过Environment|IntelliSense|General设置,始终返回到本机VisualStudio智能感知。
无论您喜欢自动完成,您都可以在您键入内容之后,或者甚至不用键入,就可以显式调用ReSharper的代码完成功能:只要允许任何有意义的代码:
所有ReSharper完成快捷方式都可以连续按几次。在这种情况下,ReSharper在完成列表中增加了更多的建议。有关更多信息,请参阅DoubleCompletion
- 按下Ctrl+Alt+Space调用智能完成,根据表达式的预期类型提供更多智能建议。
- 按将Shift+Alt+Space调用导入符号完成,该显示与给定前缀匹配的所有类型,而不管它们属于哪个名称空间,还会在必要时向当前文件插入适当的名称空间导入指令。
选择和移动代码块
无论您身处何处,请尝试按Ctrl+Alt+Right/Ctrl+Alt+Left。这些快捷方式允许您连续选择符号,行或代码块,以便您可以轻松地选择任何所需的表达式进行复制,剪切或移动。有关更多信息,请参阅延长/缩小选择。
如果您需要移动选定的代码块,请按Ctrl+Shift+Alt,然后使用箭头键将该块移到任何允许的位置。有关更多信息,请参阅重新排列代码元素
Alt+Enter
很多时候,您会在编辑器的左侧看到许多不同的动作指示器中的一个。您可以按下Alt+Enter查看ReSharper在当前插入位置所建议的内容:
- 如果您看到红色灯泡或黄色灯泡图标,甚至建议按下,Alt+Enter因为这些动作指示器告诉您ReSharper检测到错误或其他代码问题,并且知道如何解决该问题。
- 如果你看到一个锤子图标,除非你想修改插入符号,否则你可以忽略它。如果您想进行更改,按下Alt+Enter可能会有所帮助。ReSharper的提供数百个的情况下行动能,例如,快速改变符号可见,添加遍历集合,和更多的代码。
- Alt+Enter如果没有行动指标,您也可以按下。在这种情况下,您可以开始键入以快速查找并执行任何ReSharper操作。
-
重构代码
ReSharper的重构集远远超过了VisualStudio提供的关于数量,可用性和应用范围。
学习和记住ReSharper提供的几十次重构并不容易。但是,您可以按Ctrl+Shift+R代码中的任何符号,然后查看哪些重构可用。
生成代码
ReSharper可以通过提供大量用于自动生成样板代码的功能帮助您专注于不重要的任务。例如,您可以调用一个不存在的方法,ReSharper会根据使用情况创建此方法,并考虑返回类型和参数类型。
生成类型成员
如果您的脱字符号位于类型声明的任何位置,请按Alt+Insert。在打开的弹出式菜单中,您可以选择要为类型生成的项目。ReSharper可以创建构造函数,属性,覆盖成员等等。有关更多信息,请参阅代码生成。
应用代码模板
当你要写一个典型的代码块,如'for'或'foreach'循环,一个安全的类型转换,一个断言等,按下Ctrl+E,L并选择相应的活动模板。有关更多信息,请参阅使用实时模板创建源代码。
使用类似的技术,可以用典型的代码结构包围现有的代码块,如'if...else','try...catch'等。在这种情况下,按Ctrl+E,U或Alt+Enter选择。有关更多信息,请参阅使用模板围绕代码片段。
如果您发现ReSharper的代码模板有用,您可能也有兴趣添加新的表单模板文件并创建您自己的代码模板。
代码风格很重要
使用ReSharper,您可以控制代码中的大多数样式方面:命名标准,格式化规则,文件和类型布局,文件标题样式以及许多其他小事情(例如修饰符的顺序或是否使用'var'关键字)。
ReSharper代码样式功能的默认值是根据Microsoft准则和众多最佳实践选择的。同时,代码风格的每个微小方面都可以改变,以适应您的个人或企业偏好。
要应用代码样式规则,请按Ctrl+E,C。ReSharper会提示您选择两个默认代码清理配置文件之一:重新设置代码的格式或在选定范围内应用多个代码样式规则。
下一步
您可以查看GitHub上的ReSharperWorkshop。这是一个VisualStudio解决方案,为导航,编辑,检查,重构等提供了一步一步的代码练习。
快速启动技巧
您可以使用交互式教程(ReSharper|Help|Tutorials)开始使用ReSharper的功能,或者熟悉新版本中的功能。
外观和感觉
- 您可以更改ReSharper带入VisualStudio编辑器的所有颜色。转到Tools|Options|Environment|FontsandColors并查找以ReSharper。开头的项目。
- 您可以更改ReSharper键盘绑定以进行任何操作:转到Tools|Options|Environment|Keyboard和查找项目ReSharper。
- 在VisualStudio2012和更高版本中,您可以使用快速启动功能来搜索和执行ReSharper命令。
- 在编辑器中,按Alt+Enter,然后开始键入要执行的ReSharper命令的名称(更多...)。
- 试图学习ReSharper快捷键?首先,确定两个默认快捷方式中的哪一个对您更方便。然后,使用此页面右上角的选择器切换帮助中的快捷方式;或下载并打印PDF版本的VisualStudio方案或ReSharper2.x/IntelliJIDEA方案。
在编辑器中编码
- 只要您键入方法签名,例如publicvoidFoo(stringinput按下Ctrl+Shift+Enter即可插入应遵循的所有语法元素,并进入可继续输入的位置(更多...)。
- 你想围绕一些代码try...catch?选择一个逻辑代码块用Ctrl+Alt+Right,按Alt+Enter,然后选择下一个模板的环绕...。
- 您可以选择一个代码块并使用Ctrl+Shift+Alt+箭头键移动该块(更多...)。
- 您可以查看最近的剪贴板条目,Ctrl+Shift+V然后选择要粘贴的条目(更多...)。
- 如果您打开参数信息弹出窗口(Ctrl+Shift+Space),则可以使用Ctrl+Shift+Space/Ctrl+Shift+Alt+Space跳转到下一个/上一个签名。
- 枚举完成将自动插入Enum类型作为前缀。不需要拼出来!
- 枚举完成是由CamelHumps驱动的。尝试打字StringComparisonc=oic。
- 使用String.Format,您可以在光标位置添加占位符。只需点击Alt+Enter并选择插入格式参数(更多...)。
- 如果字符串文字太长,点击Enter并且ReSharper会自动将它的一部分放到下一行并插入+符号。删除+和字符串部分将重新合并(更多...)。
- 使用剪切/粘贴将属性移动3行?有一种更简单的方法:将光标放在属性上,按下Ctrl+Shift+Alt并使用向上箭头键。
- 查看其他打字辅助功能。
分析代码
- 甚至在运行代码之前使用[NotNull]和[CanBeNull]属性可以帮助您找到NullReferenceException(更多...)。
- 右键单击解决方案资源管理器中的文件,项目,解决方案文件夹或整个解决方案,然后选择查找代码问题以查看所选项目的错误,警告和建议(更多...)。
- 困扰突出的代码问题?Alt+Enter在突出显示的代码处按下并选择检查[检查名称],然后您可以选择使用注释或属性来抑制问题,或者禁用相应的代码检查。
- 您可以使用单个注释标记代码来抑制所有检查-标记代码与//ReSharperdisableAllReSharper不会抱怨什么,直到它符合相应的//ReSharperrestoreAll。
- ReSharper的解决方案范围分析解决了可见性问题:您会看到是否在组件外部使用内部成员,并且永远不会错过单个未使用的非私有成员。
- 您可以在ReSharper|中的代码分析中通过掩码排除文件选项|代码检查|设置|跳过的元素。
- 按/可以转到文件中的下一个/上一个代码问题。Alt+PageDownAlt+PageUp
- 要在您的解决方案中查找所有可本地化的字符串,请在相关项目的属性中设置Localizable=Yes和LocalizableInspection=Pessimistic,然后找到任何此类sting,用下划线突出显示,按下Alt+Enter并选择Inspection'ElementisLocalizable'|查找类似的问题(更多...)。
遍历代码
- 您可以按Ctrl+T快速查找类型,方法或基本所有内容,同时Ctrl+Shift+T让您找到文件。
- 将您的光标放在using(或者import如果您使用VB.NET)指令并按下Shift+F12。ReSharper将显示这个命名空间的使用位置(查找符号的用法)。
- 忘记你刚才在编辑的地方?转到最后编辑位置用Ctrl+Shift+Backspace。
- 想要定位当前符号的真实位置?按F12或右键单击该符号。
- 转到包含声明(Ctrl+[)可与被用于Shift以选择整个声明
- 在定位CustomerServicesTest使用Ctrl+T或任何其他导航命令时,您不需要键入整个事物。只需使用CamelHumps并键入cst。
- Alt+Home将您引导至基本类型并将Alt+End您引导至当前类型的继承者。
- 你想转到班级中的下一个成员吗?Alt+Down会带你到那里;Alt+Up会带你回来(更多...)。
- 搜索任何东西(用法,实现,范围外部的代码等)都会提取到查找结果窗口。然后使用它在搜索结果与F8/Shift+F8(more...)之间导航。
- 在源代码中,Shift+Alt+L在解决方案资源管理器中选择当前文件;在反编译的源代码中,它会打开关注当前类型的AssemblyExplorer窗口(更多...)。
- 要浏览当前在剪贴板中的堆栈跟踪,只需按Ctrl+E,T。
- 开始在ReSharper工具窗口中输入,内容将缩小到匹配的项目。CamelHumps匹配工作在那里。
- 使用GoToFile(Ctrl+Shift+T)在解决方案资源管理器中查找特定项目-只需选择一个.csproj文件。
- 在查找类型时Ctrl+T,可以使用通配符。想要所有的ViewModels?键入*ViewModel(more...)。
转换代码
- 您可以在ReSharper|中定义要使用的上下文操作选项|代码编辑|[语言]|上下文操作。
- 你在同一个文件中有多个类吗?快速修复它。按下Ctrl+Shift+R解决方案资源管理器中的文件,然后选择将类型移入匹配文件(更多...)。
- 随时随地重命名任何东西Ctrl+R,R。即使用更少的步骤也可以做到-只需输入一个新名称并点击即可Alt+Enter。
- 您可以使用一段代码提取方法Ctrl+R,M。
- 想要将字符串文字移动到资源文件?按Ctrl+Shift+R字符串上的任意位置并选择移动到资源(更多...)。
- 输入新的方法签名(更改参数的数量或类型,更改返回类型),签名用灰色框突出显示时,点击Alt+Enter应用更改签名重构。
- 把你的光标放在一个属性上,你可以按Alt+Enter它将它从自动属性改变为具有后台字段的属性,反之亦然(更多...)。
- 按Ctrl+R,S以更改签名的方法,看到一个预览应用之前。ReSharper会完成剩下的工作!
- 认为你的代码需要一个很好的清洗?使用Ctrl+E,C并运行完整清理配置文件(更多...)。
生成代码
- 使用Generate命令(Alt+Insert)在几秒钟内生成各种类成员。
- 您可以通过ReSharper|将版权标题添加到所有文件选项|代码编辑|文件头文本,然后运行代码清理整个解决方案(更多...)。
- Alt+Insert在解决方案资源管理器可以从您的文件模板创建文件..和文件夹。
- 输入class并点击TAB。默认情况下需要公开还是内部?更改相应的实时模板(更多...)。
- 您可以将任何成员生成命令绑定到其自己的快捷方式。转到工具|选项|环境|键盘并查找以开头的命令ReSharper_Generate。
- 使用Alt+Insert并选择Generateeventsubscriptions在XAML/ASP.NETWebForms/VB.NET中创建事件订阅。
- 如果您将插入符号放在构造函数的参数中并点击Alt+Enter,ReSharper可以创建一个字段或属性并为您初始化它。
- 输入foreach并点击TAB。ReSharper将为类型和名称建议(更多...)启动智能循环生成的实时模板。
单元测试
- 使用Ctrl+U,L解决方案中的运行所有的单元测试(更多...)。
- 想要运行一些特定的测试?在编辑器中选择它们,右键单击并选择运行单元测试(更多...)。
- 开始在单元测试资源管理器窗口中输入,按名称过滤测试。
- 在单元测试会话窗口中运行时筛选失败的测试,以便在它们通过时看到它们愉快地消失(更多...)。
ASP.NET和ASP.NETMVC
- 在ASP.NETMVC应用程序中,输入returnView("并按下Ctrl+Space。智能感知会列出所有可用的视图。
- 键入rta并按下TAB。填入控制器,然后填入动作参数。现在它应该按照IntelliSense正确的顺序!
- 想要检查ASP.NETMVC中丢失的视图吗?打开解决方案范围的分析。View("Login")如果Login.aspx不存在,将显示为红色。
- 您也可以在ASPX/Config文件中使用"转到文件成员"命令。按下Alt+\并查找它!
- 在ASPX页面中,使用导航到相关文件(CSS,JavaScipt,用户控件等)Ctrl+Alt+F7。
处理不同的语言版本
随着编程语言的发展,用新的语言特性改进代码是很自然的。另一方面,可能有些因素会阻止您升级到最新的语言版本。
ReSharper知道不同的语言版本。它分析代码并根据当前语言版本应用其自己的功能。每种语言都会自动检测语言版本,但您可以按照以下说明为某些语言手动设置版本。
C#
ReSharper完全支持所有C#版本,默认情况下,ReSharper根据关联的编译器自动检测C#版本。但是,您可以在VisualStudio的"属性"窗口中使用C#语言级别属性(View|PropertiesWindow)来显式指定目标C#版本。
VB.NET
ReSharper完全支持所有VB.NET版本,默认情况下,ReSharper会根据关联的编译器自动检测VB.NET版本。但是,您可以通过在解决方案资源管理器中选择项目并使用VisualStudio的"属性"窗口中的VB.NET语言级别属性(View|PropertiesWindow)来显式指定目标VB.NET版本。
TypeScript
如果TypeScript版本是自动检测的(默认情况下是这样),并且在您的解决方案中有几个不同TypeScript版本的项目,ReSharper将使用整个解决方案的最高版本。
ReSharper完全支持所有TypeScript版本。ReSharper<TypeScriptToolsVersion>根据VisualStudio项目文件中的属性自动检测TypeScript版本。但是您可以使用CodeEditing|TypeScript|Inspections上的TypeScript语言级别选择器明确指定目标TypeScript版本
JavaScript的
ReSharper完全支持JavaScript到ECMAScript,包括实验性功能,如async/await,指数运算符和对象文字/解构literals/destructuring,rest/spread。jQuery和JSX语法也被支持。
默认情况下,代码检查和其他ReSharper功能根据通用支持的ECMAScript5标准分析JavaScript代码。如果您在项目中使用更高级的JavaScript代码,则可以在CodeEditing|JavaScript|Inspections。
C++
C++支持可以通过ReSharperC++获得-这是一种专用产品,您可以单独安装,也可以与ReSharper或ReSharperUltimate一起安装。
ReSharper支持C,C++,ReSharper根据平台工具集(项目属性中的General|PlatformToolset)/std开关
CSS
ReSharper支持CSS。实际上,CSS版本远不如由不同web浏览器支持的CSS功能集重要。因此,ReSharper可以让您针对特定Web浏览器的特定版本调整其CSS代码检查。您可以在CodeEditing|CSS|Inspections。
加速ReSharper(和VisualStudio)
在VisualStudio中安装ReSharper有两个主要的性能问题源:
- 您的系统不符合要求。在这种情况下,我们建议升级您的系统作为处理问题的第一步。
我们经常确保ReSharper在现代硬件以及大中型解决方案中都能正常工作,无需任何调整。我们相信VisualStudio开发人员正在努力实现同样的目标。
通过禁用某些功能来加快ReSharper在过时硬件上的速度,您将剥夺自己的优秀工具来加速您的开发性能。 - VisualStudio和ReSharper共享相同的32位进程,将您的系统推向极限。通常情况下,这将在大型解决方案上发生,并且在VisualStudio2015中安装了ReSharper。
在这种情况下,如果您的系统符合要求,下面的检查列表将帮助您解决大多数情况下的性能问题。首次开放大型解决方案需要花费大量时间(长达几分钟)并不是问题的标志。ReSharper构建和缓存解决方案的模型,然后将其用于几乎所有的功能-不仅用于代码分析,还用于导航和搜索,代码完成,单元测试等。
此解决方案的后续打开不会导致任何重大延迟,因为索引结果已经缓存在硬盘上。
请注意,由于ReSharper在首次启动时处理程序集注释,即使清理ReSharper缓存,后续任何启动都会更快。先试试这个
性能问题的最常见原因可以通过以下措施来消除:
- 转到ReSharper|Options|Environment|PerformanceGuide检查并快速修复影响性能的ReSharper和VisualStudio首选项。
- 如果您不使用解决方案范围分析,请将其禁用或考虑在解决方案范围分析中禁用警告。即使它被禁用,您也可以随时通过对整个解决方案运行代码检查来查找解决方案中的所有代码问题。要配置解决方案范围的分析
- 在VisualStudio选项中,转到SourceControl|Plug-inSelection:为源代码管理插件选择无。这将关闭Git或其他VCS提供程序并提高整体性能。
硬件检查
- 确保没有硬件中断和DPC(通常由坏的驱动程序和/或虚拟化引起)。
- 确保你的硬盘没有碎片。
- 确保页面文件至少为1GB。
- 确保您至少有15%的可用磁盘空间(MFT碎片/空间不足风险)。
- 确保你至少有4GB的RAM空闲。
- 将解决方案和ReSharper高速缓存存储在SSD上会有所帮助,而RAMDisk不会产生重大影响。
推荐的系统软件调整
- 使用Microsoft当前支持的Windows版本
- 保持Windows更新
- 使用64位操作系统
- 将devenv.exe,msbuild.exe和您的代码文件夹添加到WindowsDefender(和其他防病毒软件)的忽略列表中。
- 停止不必要的服务和流程
VisualStudio
在开始调整VisualStudio设置之前,请检查是否安装了最新的VisualStudioupdate/servicepack/hotfixes。
配置VisualStudio首选项
打开VisualStudio选项(Tools|Options)并配置首选项,如下所示:
这里描述的首选项的位置对应于VisualStudio2015。
- Environment|General:禁用Automaticallyadjustvisualexperiencebasedonclientperformance基于客户端性能自动调整视觉体验,禁用Enablerichclientvisualexperience启用富客户端视觉体验,启用Usehardwaregraphicsaccelerationifavailable使用硬件图形加速(如果可用)。这些调整将减少UI滞后并提高整体性能。
- SourceControl|Plug-inSelection:为源代码管理插件选择None无。这将关闭Git或其他VCS提供程序并提高整体性能。
- Environment|Startup:选择在启动时显示空白环境并禁用下载内容。关闭起始页面和新闻频道可能会节省启动时间。
- Environment|AutoRecover:禁用SaveAutoRecoverinformation保存自动恢复信息。尽管不断复制已打开文档的当前状态可能对崩溃很有用,但它可能会以UI价格冻结的大型解决方案(例如,请参阅此处的注释)。因此,我们建议禁用此功能并养成在重大更改后保存文件的习惯。
- TextEditor|General:禁用Trackchanges跟踪更改。当"跟踪更改"启用时,VisualStudio会为编辑的行添加阴影突出显示。如果当前文件中的编辑过多,编辑器可能会变慢,因为这些突出显示通常需要计算。
尽管这是一个有用的功能,但我们建议禁用它,特别是在处理大文件时。 - TextEditor|AllLanguages|ScrollBars:禁用Showannotationsoververticalscrollbar在垂直滚动条上显示注释。ReSharper广泛使用正确的排水槽或垂直滚动条来显示设计时检查通知,结构搜索和替换结果,待办事项以及文件中符号的用法。VisualStudio也会在滚动条上显示大量通知,有时VisualStudio和ReSharper报告显示两次的相同错误,而且滚动条通常会变得杂乱无章。
如果您更喜欢ReSharper标记,则可以完全或部分禁用VisualStudio注释,并通过不呈现它们来获得一些性能优势。
或者,您可以禁用滚动条上的ReSharper标记-转到ReSharper|Options|Editor|EditorAppearance并选择Donotshowmarkerbar. - TextEditor|AllLanguages|CodeLens:禁用CodeLens。CodeLens是大型解决方案的性能考虑之一,因为"IDE在滚动到屏幕上时基本上为每种方法执行"查找所有引用"操作。因此,我们建议您在发现任何滞后时禁用它。
CodeLens的一些功能由ReSharper提供-例如,您可以快速获取符号的用法(Shift+F12)。 - Debugging|Just-In-Time:禁用脚本的实时调试。这将加快构建和调试。
- WebFormsDesigner|General:禁用Web窗体设计器。这将减少UI和编辑滞后。
- XAMLDesigner|General:禁用XAML设计器。VisualXAML设计器是一个非常耗费资源的功能。因此,如果您可以不使用XAML的直观表示的情况下使用XAML代码,则强烈建议禁用XAML设计器。
- TextEditor|[Language]|Formatting:禁用所有自动格式首选项。如果您使用ReSharper的格式化帮助,这将阻止您的代码重新格式化两次,并减少编辑器滞后。
- TextEditor|C#:如果使用"文件结构"窗口,则可能不会使用编辑器顶部的导航栏,并且可以在此选项页面上安全地禁用它。
- TextEditor|C/C++|Advanced:如果您使用C/C++代码,请设置IntelliSense|DisableSemantic禁用语义着色优选True。这将改善大文件内打字体验。
- Environment|Synchronizedsettings:禁用设置同步。这将改善整体表现。
配置Roslyn
在大多数已报告的性能问题中,ReSharper安装在VisualStudio中。这并不奇怪:当您的VisualStudio解决方案变大时,两个代码分析引擎(ReSharper和Roslyn)可同时工作,以达到32位进程的内存限制他们分享。
虽然没有官方的方法来禁用Roslyn,但您可以查看本文以找到一些替代解决方案。
您还可以查看大型解决方案的Roslyn性能考虑事项。其他VisualStudio调整
- 从VisualStudio中卸载未使用的包和扩展
- 如果您不在某些项目上工作,则可以从VisualStudio中卸载它们,并在需要时重新加载它们。右键单击解决方案资源管理器中的项目或解决方案文件夹,然后选择解除解决方案文件夹中的卸载项目或卸载项目-这将提高整体性能。
ReSharper的
在开始调整ReSharper之前,请检查您是否正在运行最新版本,如果没有,请考虑更新。
配置ReSharper首选项
ReSharper提供了许多不同的功能,如有必要,您可以在ReSharper选项中禁用大部分功能。因此,这里的一般规则是:如果您有任何性能问题,请禁用不使用的功能。
打开ReSharper选项(ReSharper|Options)并配置首选项,如下所示:
- CodeInspection|Settings:在此选项页面上,您可以禁用代码检查的各个方面。以下是您可以禁用的内容,从最小的禁用功能开始:
- 在VisualStudio中,清除"DonotshowVisualStudiobulb..."复选框。默认情况下,ReSharper将Roslyn操作显示在其自己的操作列表中。这看起来更好,因为编辑器不那么杂乱,但这是昂贵的性能方面的,因为ReSharper必须从Roslyn请求可用的操作,这可能导致CPU和内存使用率的增加。
虽然所有对Roslyn的请求都是在后台线程中完成的,但如果存在明显的性能问题,您可能需要禁用此选项。 - 如果您不使用解决方案范围分析,请将其禁用或考虑在解决方案范围分析中禁用警告。即使它被禁用,您也可以随时通过对整个解决方案代码检查来查找解决方案中的所有代码问题。
- 如果解决方案中有任何源代码不需要分析,请将相应的文件和文件夹添加到忽略列表中。
按下,可以将当前文件添加到忽略列表Ctrl+Shift+Alt+8。再次按快捷键将重新启用此文件的检查。如果要为此操作绑定不同的快捷方式,请ReSharper_EnableDaemon在VisualStudio选项中查找该命令。
- 最后一步是清除Enablecodeanalysis启用代码分析复选框。这将禁用设计时检查,但您仍然可以在所需的范围内运行代码检查。
- Environment|Products&Features:在这里您可以禁用您不使用的ReSharper功能。例如,清除UnitTesting单元测试复选框将禁用所有ReSharper单元测试功能并保存一些内存。
- Environment|General:在Storesolutioncachesin:选择器中,选择"系统温度"或任何自定义文件夹。如果您的解决方案不在VCS下,您也可以选择"解决方案文件夹"。不建议选择"用户本地设置文件夹"(%LOCALAPPDATA%)此文件夹的问题在于,每次ReSharper写入此文件夹时都会触发VisualStudio的目录观察器,这经常发生。
- Environment|IntelliSense:如果您的打字速度变慢,您可能需要进行配置。与代码检查类似,您可以禁用ReSharperIntelliSense的特定部分,或将其完全关闭并回退到本机VisualStudio的IntelliSense。以下是您可以禁用的内容,从最小的禁用功能开始:
- Environment|IntelliSense|CompletionAppearance:清除Showmembersignatures,Showsymboltypes,Showsummary.显示成员签名,显示符号类型,显示摘要。这将简化建筑物完成清单。
- Environment|IntelliSense|General:关闭特定语言的ReSharperIntelliSense(CustomIntelliSense自定义智能感知)或完全关闭它(VisualStudio)。
- Environment|Editor|EditorBehavior:禁用Auto-formatonsemicolon分号自动格式和Auto-formatonclosingbrace右大括号自动格式来避免代码重新格式化,同时输入;也禁用Correctcommonlanguage-specifictypos正确的公共语言特定的拼写错误,这将关闭一些打字辅助功能。清除这些复选框将加速打字。
如果您使用C++,则还可以禁用 Show import items in basic completion基本完成中显示导入项目偏好-这将简化完成列表,从而减少可能的打字延误。C++支持可以通过ReSharperC++获得-这是一种专用产品,您可以单独安装,也可以与ReSharper或ReSharperUltimate一起安装。
- Environment|Editor|EditorBehavior:禁用 Highlight current line, Highlight matching delimiters.高亮显示当前行,突出显示匹配分隔符。这可能会减少UI和编辑器滞后的机会。
- Environment | Extension Manager:禁用您不使用的ReSharper扩展。
- Tools | Build:启用ReSharper构建。ReSharper的增量构建可以大大缩短构建时间,特别是对于大型解决方案。
- Code Editing | Context Actions:在这里您可以禁用对您无用的上下文操作。
- Code Editing | JavaScript | Inspections:如果您使用JavaScript并遇到一些性能问题,请不要Analyse properties' context when inspecting code在检查代码时分析属性的上下文。
- Code Editing | Third-Party Code:在这里您可以添加C++,JavaScript,TypeScript,CSS,HTML和JSON文件,文件夹和通配符,将其视为"跳过"或"库"。ReSharper将完全忽略"跳过"的文件,并将'library'文件视为只读文件-用于导航索引,但没有检查,快速修复和重构。
- Code Editing | Language Injections:在此页面上,您可以禁用不感兴趣的自动语言注入。
不要过度使用复杂的UI控件
- 关闭未使用的单元测试会话。
- 关闭未使用的类型,项目和程序集依赖关系图。
- 如果启用解决方案范围分析,则可以关闭"解决方案"窗口中的错误/警告,因为无论如何您都会看到状态栏中的错误/警告数量。
其他调整
- 要加快扩展代码模板,可以关闭您使用的模板的重新格式化和 Shorten qualified references 缩短限定引用选项:
- 不使用它时关闭ProcessExplorer窗口。
如果没有帮助
如果您尝试了上述所有内容并且性能仍然不佳,您可以暂时禁用ReSharper并检查是否是造成速度放慢的原因。要禁用/启用ReSharper,请转至Tools | Options | ReSharper Ultimate ,然后单击Suspend Now/Resume Now。
如果暂停ReSharper有助于提高性能,但您仍然希望偶尔使用它来进行代码分析,代码清理或重新格式化代码,则可能需要一个可快速切换ReSharper的快捷方式。以下是如何操作:转到Tools | Options | Environment | Keyboard 并找到该ReSharper_ToggleSuspended命令,然后按您选择的快捷方式并单击分配。
已知的性能问题
如果您最近更新了ReSharper,并观察使用先前版本打开的解决方案的性能下降情况,则可以尝试通过清除ReSharper缓存并删除解决方案.suo文件来加快速度。
要清除缓存,请转至ReSharper | Options | Environment | General并单击"
Clear Caches.清除缓存"。
已知的兼容性问题
其他VisualStudio扩展
使用以下产品已经观察到主要兼容性问题:
- DevExpress CodeRush/Refactor Pro (incompatible)
- Telerik JustCode (incompatible)
- Whole Tomato Visual Assist
- Productivity Power Tools
使用以下产品观察到性能下降:
- Some versions of the StyleCop ReSharper plug-in
- PowerCommands for Visual Studio
还有关于WebEssentials的报告导致编辑.cshtml文件时性能低下。如果您受到此问题的影响,请考虑转到 Tools | Options | Web Essentials 并在Enter上设置Auto-format HTML on Enter为False。
ParallelsDesktopforMac
如果您使用ParallelsDesktop在Mac上的Windows虚拟机中运行VisualStudio,则ReSharperIntelliSense列表渲染速度可能会非常慢。
如果在您的设置中发生这种情况,请考虑从"连贯"模式切换到"全屏"模式。有关在两种模式之间切换的指导原则,请参阅此Parallels知识库条目。