ReSharper 2025.2 版本带来了显著的性能改进、令人期待的新语言功能,并全面提高了开发者的工作效率。 在此版本中,Out-of-Process(进程外,OOP)模式现在可供预览,并扩展了对 C# 14和 C++ 的支持,因此编写现代、可靠代码的速度比以往快得多。
我们很高兴地宣布,ReSharper 2025.2 成为首个支持以进程外 (OOP) 模式在 Microsoft Visual Studio 中运行 ReSharper 的稳定版本。 这一期盼已久的架构更改为今后进一步提升稳定性和性能奠定了基础,因为这项更改将 ReSharper 进程与 Visual Studio 进程分离。
要切换到 Out-of-Process(进程外)模式,请前往 ReSharper 的 Options | Environment | Products & Features(选项 | 环境 | 产品与功能),并选择 Run ReSharper in separate process(在单独的进程中运行 ReSharper)选项。 点击 Save and restart(保存并重启)按钮,以应用更改并重新初始化 ReSharper,而无需重启 IDE。
在 ReSharper 2025.2 中,您可以使用 Ctrl+T 在打开解决方案后立即开始导航到文件,而无需等待完整索引编制完成。
我们减少了内存开销,取消了对 _ViewImports 和 _ViewStart 这类 include 文件的冗余处理。 对于 Razor 组件类型,Find Usages(查找用法)的速度现在有所提升,并解决了多个误报警告问题。
Rename(重命名)重构现在的速度显著提升,并且更加透明。 我们对验证阶段进行了并行化处理,改进了进度报告,并减少了内存消耗。
我们减少了就地重构对性能的影响,最大限度降低了对输入干扰,并提升了整体编辑体验。
ReSharper 现在可以更好地利用现代 SSD,移除了在索引期间强制执行顺序磁盘操作的旧逻辑。 此逻辑最初针对 HDD 进行优化,但 SSD 摆脱了 HDD 的物理限制,能够实现高吞吐量的并行 I/O 操作。 这项更改与优化的后台处理一起使现代硬件上的索引和启动速度略有提升。 对于包含对源代码生成器的引用的项目,解决方案加载也得到改进。
想了解这些性能提升背后的完整故事吗? 请前往我们的博客深入了解。
ReSharper 现在也作为 Visual Studio Code 的扩展程序提供。 如果您在工作流中使用 Visual Studio Code,现在可以直接在编辑器中使用熟悉的 ReSharper 功能。 代码检查、快速修复、导航以及 Rename(重命名)全部受到支持,并由同一底层引擎提供支持。
在公共预览期间,适用于 VS Code 的 ReSharper 可免费使用。
ReSharper 2025.2 为 C# 14 中的最新功能提供初步支持:
通过提供代码补全、代码分析、Find Usages(查找用法)、Rename(重命名)重构等功能,ReSharper 对新增的 C# 14 扩展成员提供了预览支持。
C# 14 借助部分事件和构造函数继续扩展源代码生成的可能性。 ReSharper 已更新,以涵盖这些新用例。
借助 ReSharper 2025.2,您可以使用新增的 a?.b = c 和 a?[i] = c 模式在安全处理潜在 null 值的同时简化代码。
ReSharper 现在可以正确理解并处理 C# 14 中引入的用户自定义复合赋值运算符。
ReSharper 现在能够识别新的 #! 和 #: 预处理程序指令。
LoggerMessage 进行更好的日志记录 ReSharper 2025.2 引入了多项改进,帮助您使用 ILogger 编写更高效、更易维护的日志记录代码。
LoggerMessage 生成的方法 ReSharper 现在可以自动将您的 ILogger 方法调用转换为基于 LoggerMessage 的方法。 这减少了运行时开销并提高了性能,特别是在高吞吐量应用程序中。
ILogger<T> 更智能的代码补全 编写 ILogger<> 时,ReSharper 现在会在尖括号内建议将当前类型作为补全,从而节省您在设置过程中花费的时间。
[LoggerMessage] 特性中改进的形参名称处理 ReSharper 提供了 [LoggerMessage] 特性中形参名称的便捷补全,并且会在相应形参重命名时正确更新代码。
LoggerMessage 用法的新检查 ReSharper 现在可以检测 [LoggerMessage] 特性中缺少的形参和重复的日志条目,并提供了快速修复来解决这些问题。
ReSharper 将识别更多可以使用范围索引器的情况,例如,在适用的情况下建议使用 s[a..b] 而不是 s.Substring(a, b - a)。
ReSharper 现在可以更有效地识别范围表达式中的冗余边界,使您的切片操作更清晰、更可靠。
ReSharper 现在与 Roslyn 的检查设置更紧密地集成,支持通过 #pragma 和 Roslyn 的严重性配置启用或禁用检查。
就地重构现在通过嵌入提示出现,这使其更加醒目并与 JetBrains IDE 保持一致。 您可以在 ReSharper | Settings | Environment | Editor | Appearance(ReSharper | 设置 | 环境 | 编辑器 | 外观)下配置它们的外观。
现在,您可以使用专用上下文操作快速将方法转换为局部函数,有助于改善代码结构和可读性。
ConstantExpected 特性的支持 当非常量值被传递给标有 [ConstantExpected] 特性的形参时,ReSharper 会发出警告,帮助您避免细微的 bug。
switch arm 的新检查 ReSharper 可以检测重复 switch arm 并提供快速修复进行合并,使代码更简洁。
ReSharper 2025.2 还为现代 C++ 开发引入了其他增强功能:
#if 语句注释掉的代码块中的代码时,可以全面使用编码辅助功能,无需切换有效构建配置。#pragma 指令中引用变量,以及其他新增的编码辅助功能。从 ReSharper C++ 2025.2 最新变化页面详细了解 C++ 更新。
在 2025.2 版本中,我们将停止支持适用于 Visual Studio 的 TeamCity 扩展程序。
这项更改源于我们简化工具并专注于最具影响力的开发者体验的持续工作。 我们知道这可能会对部分工作流产生影响,但我们相信这一决定最终将为我们的工具带来更好的性能和更可持续的生态系统。
ReSharper 2025.2 引入了实验性检查,帮助实施命令查询责任分离 (CQRS) 模式。 这些检查可以检测命名不匹配、上下文交叉以及注解和名称之间的冲突。 提供了快速修复来移除冗余特性或重命名实体以遵循约定。
CQRS 验证默认处于禁用状态,可以在 Options | Code Inspection | CQRS Validation(选项 | 代码检查 | CQRS 验证)中启用。 所需注解在 JetBrains.Annotations 中可用。