如何在Visual Studio中禁用并重新启用ReSharper?

370
我安装了 ReSharper,并且在 Visual Studio 中它能够正常工作,但我该如何禁用它呢?
每当我在 ReSharper 菜单中搜索时,都找不到禁用选项。

@matthew.perronsuspend option 对我来说很有效,但我也失去了 Visual Studio 的所有内置代码分析/检查功能 :( - Jaider
13个回答

536
你可以通过在菜单 工具选项ReSharper 中使用 Suspend Now 按钮来禁用ReSharper 5及更新版本。

输入图像描述


4
谢谢。很遗憾,但我不得不在编辑 HTML 和 .aspx 页面时每次禁用它。 - RayLoveless
2
我发现我需要禁用它对于TypeScript - 它会把一切都搞错。 - Martin

157
如果您不想频繁点击,可以打开命令窗口(Ctrl+W, A)并键入:ReSharper_SuspendReSharper_Resume,具体取决于您想要做什么。
或者您甚至可以为此设置一个键盘快捷方式。在Visual Studio中,转到工具->选项->环境->键盘
在那里,您可以将键盘快捷键分配给ReSharper_SuspendReSharper_Resume
命令窗口也可以通过Ctrl+Alt+A 打开,以防您在编辑器中。 输入图像描述

5
对我而言,“命令窗口”绑定为“Ctrl”、“alt”、“A”。那可能是因为Re#将“Ctrl”+“W”绑定为“扩展选择”。 - default
完全禁用它的任何选项。它会与键盘冲突。我不想对ReSharper做任何更改 - 只是禁用,而不是挂起。挂起会保留快捷方式! - Ajay
3
正如其他答案中也提到的,还有一个叫做ReSharper_ToggleSuspended的热键,它允许你使用一个热键在暂停和恢复之间切换。 - ranieuwe

78

ReSharper_ToggleSuspended绑定到快捷键。

步骤:

  1. 选择“工具(Tools)”,然后选择“选项(Options)”
  2. 在左侧单击“键盘(Keyboard)”
  3. 在“显示包含命令”的输入框中输入“suspend”
  4. 选择“ReSharper_ToggleSuspended”
  5. 按下所需的快捷键: and
  6. 点击“分配(Assign)”按钮。

ReSharper_ToggleSuspended绑定到快捷键(在我的情况下是Ctrl-Shift-Q)非常有效。由于ReSharper尚未支持异步CTP(截至2011年中期),当需要使用async关键字的代码时,这个快捷方式非常有用。


我认为这是发布的最实用的解决方案,用于暂时挂起ReSharper(并且可以通过ReSharper菜单栏条目的存在/不存在轻松查看当前状态)。一个值得注意的情况是在切换相当大的(> 50个项目)解决方案的解决方案配置时。启用ReSharper后,此操作大约慢10倍(252秒与未启用的25秒)。能够临时切换ReSharper以调整项目设置,然后重新启用而无需重新加载或选项菜单钻取非常方便。 - holtavolt
我喜欢这个切换选项。有时,当我打re#时会严重拖慢我的速度。我以为禁用它会帮助我更快地打字。但是当我重新启用它时,加载时间太长了,最终反而使我变得更慢:(现在我正在学习适应缓慢的打字:( - SZT

49

我总是忘记如何操作,但这是谷歌搜索的最佳结果。我认为这里的答案都不令人满意。
所以下次当我再次搜索时,为了帮助其他人,以下是如何操作以及切换按钮的外观:

Toggle Resharper Toolbar Button

  • 确保Resharper当前已启用,否则可能会失败。
  • 通过标题按钮附近的Quick Launch栏打开package manager console以启动PowerShell实例。
  • 将下面的代码输入到Package Manager Console Powershell实例中:

如果要将其添加到标准工具栏:

$cmdBar = $dte.CommandBars.Item("Standard") 
$cmd = $dte.Commands.Item("ReSharper_ToggleSuspended")
$ctrl = $cmd.AddControl($cmdBar, $cmdBar.Controls.Count+1)
$ctrl.Caption = "R#"

如果您想将其添加到新的自定义工具栏中:

$toolbarType = [EnvDTE.vsCommandBarType]::vsCommandBarTypeToolbar
$cmdBar = $dte.Commands.AddCommandBar("Resharper", $toolbarType)
$cmd = $dte.Commands.Item("ReSharper_ToggleSuspended")
$ctrl = $cmd.AddControl($cmdBar, $cmdBar.Controls.Count+1)
$ctrl.Caption = "R#"

如果出错需要重新开始,使用以下代码删除:

$ctrl.Delete($cmdBar)
$dte.Commands.RemoveCommandBar($cmdBar)

除了添加按钮外,您可能还希望添加键盘快捷方式
ctrl+shift+Num -, ctrl+shift+Num -,即:ctrl+shift+-+-

编辑: 看起来 StingyJack 找到了我很久以前发现的原始帖子。当我搜索此内容时,它从未出现过。
https://dev59.com/_GIk5IYBdhLWcg3wr_9o#41792417


1
我也总是需要花费几分钟的时间来寻找这篇文章,所以我将其添加到了一堆高端脚本中,可以在 https://github.com/StingyJack/Vs-Utility/blob/master/Add-ResharperToggleButton.ps1 找到。 - StingyJack
1
最佳解决方案,我个人认为。 - cdiazal
1
最佳解决方案,但请注意,如果r#当前未启用,则至少第一个命令组将失败! - Samuel
2
这是有史以来最棒的答案之一,不仅针对这个问题,而且是普遍适用的。没有废话,只有代码,而且它还能正常工作。谢谢! - g.pickardou

28
如果 ReSharper 完全从选项菜单中消失,可能是因为扩展本身已被禁用。
在 Visual Studio 2017 中,可以通过转到“帮助”>“管理 Visual Studio 性能”来启用和禁用 ReSharper 2018.X.X。然后在“扩展”下选择“JetBrains ReSharper ...”。

enter image description here

在Visual Studio 2019中,您需要进入“扩展->管理扩展->已安装”选项。

12

如果您不想使用命令窗口或快捷键,可以添加一个菜单项来切换ReSharper。不幸的是,ReSharper_ToggleSuspended 命令不能直接添加到菜单中(关于此有一个已知问题),但很容易绕过:

创建一个类似这样的宏:

Sub ToggleResharper()

    DTE.ExecuteCommand("ReSharper_ToggleSuspended")

End Sub

然后添加一个菜单项来运行该宏:

  1. 工具 | 自定义...
  2. 选择“命令”选项卡
  3. 选择你要放置该项目的菜单
  4. 点击“添加命令”...
  5. 在左侧列表中,选择“宏”
  6. 在右侧结果列表中,选择宏
  7. 点击“确定”
  8. 在列表中突出显示你的新命令,点击“修改选择...”以设置菜单项文本等。

如何在VS2017中添加宏? - Hrvoje Hudo
@HrvojeHudo 在VS2017中已经不存在宏了。 - Styxxy

12

您需要前往“工具”-->“选项”--->选择“Resharper”--->点击“暂停”,以禁用它。


10

现在,Resharper已经支持在devenv.exe中暂停和恢复参数。(ReSharper 2019.2.3)

运行VS并暂停R#:

devenv.exe /ReSharper.Suspend

运行 VS & 恢复 R#:

devenv.exe /ReSharper.Resume

这是一个使用示例:

输入图像描述


正是我所需要的,我可以确认它适用于VS2019和Resharper 2020.X!谢谢!现在,我只需要知道如何通过命令行启用/禁用xaml设计器。 - mickeymicks

9

7
在 ReSharper 8 中: 工具 -> 选项 -> ReSharper -> 立即暂停

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接