在 Visual Studio 的眾多擴充套件中,ReSharper 是使用最廣泛的 .NET 生產力工具之一。本文盤點它的核心功能、快速鍵、安裝方式與授權,以及幾個值得考量的取捨點。
什麼是 ReSharper?
ReSharper 是由 JetBrains 開發的 Visual Studio 擴充套件,核心定位是補強 Visual Studio 原生分析器的不足:它在整個方案層級(solution-wide)做靜態分析,而非僅限單一檔案,因此能找出跨專案的未使用公開成員、衍生型別關係,以及需要全域語意模型才能偵測的問題。
主要功能
即時程式碼分析
ReSharper 會在你輸入的同時持續分析整個方案,狀態列右下角的圓形指示燈反映目前的問題數量。常見偵測項目包括:
- 潛在的 null 參照(搭配可為空參照型別標記)
- 未使用的變數、參照與 using
- 命名規則違反(可對應 .editorconfig 或 .DotSettings)
- 可以簡化的 LINQ 表達式或型別轉換
重構工具
重構是 ReSharper 最被引用的強項,以下幾個是日常最常用的:
- Rename(F2):跨所有檔案、包含字串字面量與 XML 文件中的符號名稱
- Extract Method(Ctrl+Alt+M):選取程式碼片段後一鍵抽成方法,自動推斷參數與回傳型別
- Inline Method:與 Extract 相反,把方法展開回呼叫點
- Extract Interface:從現有類別提取介面,不用手動複製簽章
- Safe Delete:刪除成員前先確認沒有其他地方使用
導覽
| 功能 | 快速鍵 |
|---|---|
| Go to Everything(符號/檔案/類型全搜) | Ctrl+T |
| Navigate To(宣告/實作/基底類別) | Alt+` |
| Find Usages | Alt+F7 |
| 快速修正 / 意圖選單 | Alt+Enter |
| 重構選單 | Ctrl+Shift+R |
Go to Everything(Ctrl+T)是使用頻率最高的功能,輸入縮寫即可模糊比對,不需要記得完整型別名稱。
程式碼產生與樣板
- 輸入
prop、ctor、foreach等縮寫後按 Tab,展開對應的 Live Template - 可自訂 Live Template,把團隊慣用的樣板存成縮寫
- 可從方法呼叫點直接生成尚未存在的方法(「Create from usage」)
語言支援
C# 和 VB.NET 是功能最完整的。TypeScript、JavaScript、HTML、CSS、XAML、Razor、Blazor 有部分支援,但深度不及 C#。JSON 和 .editorconfig 也有基礎的語法提示。
Solution-Wide Analysis
這是 ReSharper 與 Roslyn 內建分析器最明顯的差異點之一:開啟 Solution-Wide Analysis 後,ReSharper 會把整個方案的所有型別關係載入記憶體,才能回答「這個公開方法真的沒有任何呼叫者嗎」這類問題。Roslyn 分析器基本上逐檔分析,無法可靠地偵測跨專案的未使用公開成員。
代價是記憶體:大型方案開啟此功能後,額外消耗幾百 MB 到 1 GB 以上的記憶體是常見情況。
安裝方式
ReSharper 不透過 Visual Studio 的「擴充功能 > 管理擴充功能」安裝,這條路徑找不到它。正確做法是:
方法一:獨立安裝程式
- 前往 jetbrains.com/resharper 下載
.exe安裝程式 - 執行安裝程式,選擇要整合的 Visual Studio 版本(可同時選多個)
- 安裝完成後重新啟動 Visual Studio
- 首次啟動時輸入授權金鑰或登入 JetBrains 帳號啟用
方法二:JetBrains Toolbox App
如果同時使用多個 JetBrains 工具(Rider、DataGrip 等),Toolbox App 可以集中管理版本與更新,也支援回滾到舊版。
授權
ReSharper 採訂閱制,沒有買斷選項,但訂閱包含一個永久回退授權(fallback license),代表即使訂閱到期,仍可繼續使用授權到期當下的版本。
| 方案 | 定價(2024) | 適用對象 |
|---|---|---|
| Individual(個人) | 約 USD 139/年 | 個人以私款購買並自用 |
| Commercial(商業) | 約 USD 349/年(續約有折扣) | 公司/組織購買 |
試用版提供 30 天免費試用,需要 JetBrains 帳號登入,不需要填信用卡。
Individual 與 Commercial 的差別純粹是使用主體,功能完全相同,沒有所謂「商業版提供版本控管功能」這種說法——版控是 Visual Studio 內建的,與 ReSharper 授權類型無關。
ReSharper vs 內建 Roslyn 分析器
VS 2022 內建的 Roslyn 分析器近年來進步幅度不小,值得在付費前評估實際差距:
- ReSharper 強在:Solution-Wide Analysis、大量開箱即用的檢查規則(超過 2,500 條)、重構廣度、跨型別層級的導覽
- Roslyn 分析器強在:零成本、無額外記憶體負擔、可與 CI 管線整合、第三方 analyzer 套件(Roslynator、StyleCop 等)生態系豐富
- 實務建議:個人專案或小型方案,Roslynator 加上 VS 內建分析器通常夠用;大型企業方案、重度重構需求、或團隊希望統一 .DotSettings 風格檔的情境,ReSharper 的差距才明顯
ReSharper vs Rider
如果你的主要工作是 .NET,也可以考慮直接改用 JetBrains Rider,而不是在 Visual Studio 上加裝 ReSharper:
- Rider 是獨立 IDE,底層整合 ReSharper 引擎,不需要 Visual Studio
- Rider 在大型方案的回應速度通常優於「VS + ReSharper」組合
- Rider 訂閱包含在 All Products Pack 中,若已訂閱則不需額外付費
如果你的工作流依賴特定 VS 擴充套件,或需要 Visual Studio 才能存取的功能(例如某些企業 DevOps 整合),才比較需要維持在 VS + ReSharper 的組合。
效能考量
ReSharper 是重量級工具,幾個實際的考量點:
- 記憶體:官方最低需求約 4GB 可用記憶體,推薦 8GB 以上;大型方案開啟 Solution-Wide Analysis 時,16GB 整機記憶體才不容易見底
- SSD:ReSharper 會在方案目錄下建立快取(
_ReSharper.Caches),機械硬碟讀寫速度會明顯拖慢索引時間 - 按需停用分析:可在狀態列圓形指示燈右鍵,暫時切到「Heuristic」或關閉部分分析,換取回應速度
使用技巧
- Alt+Enter 是核心習慣:游標停在任何標記為問題的程式碼上按 Alt+Enter,會出現 ReSharper 建議的修正與重構清單,大多數操作從這裡進入比記快速鍵快
- 團隊共享設定:把
.DotSettings檔加入版本控制,可讓所有人共用命名規則、程式碼樣式與分析嚴重等級設定 - Solution-Wide Analysis 按需開啟:不需要一直開著,在 code review 前或重構前開啟掃一遍即可,平時可關閉節省資源




