安裝指南
在安裝之前,您可能需要檢查系統要求。
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知識庫條目。
?
?