The ReSharper 2025.2 release brings significant performance improvements, exciting new language features, and enhanced developer productivity across the board. With Out-of-Process (OOP) mode now available for preview and expanded support for C# 14 and C++, this release helps you write modern, reliable code faster than ever.
We’re thrilled to announce that ReSharper 2025.2 is the first stable release to include support for running ReSharper out of process (OOP) with Microsoft Visual Studio. This long-anticipated architectural change lays the foundation for better stability and performance in the future, as it decouples the ReSharper process from the Visual Studio one.
To switch to Out-of-Process mode, go to ReSharper's Options | Environment | Products & Features and select the Run ReSharper in separate process option. Click the Save and restart button to apply the changes and reinitialize ReSharper without having to restart the IDE.
With ReSharper 2025.2, you can use Ctrl+T to start navigating to files immediately after opening a solution – no need to wait for full indexing.
We’ve reduced memory overhead and eliminated redundant processing for include files like _ViewImports and _ViewStart. Find Usages is now faster for Razor component types, and several false warning issues are eliminated.
The Rename refactoring is now significantly faster and more transparent. We’ve parallelized the validation phase, improved progress reporting, and reduced memory consumption.
We’ve reduced the performance impact of inplace refactorings, minimizing interference with typing and improving the overall editing experience.
ReSharper now takes better advantage of modern SSDs by removing legacy logic that enforced sequential disk operations during indexing. This logic was originally optimized for HDDs, but SSDs are free from physical limitations of the HDDs and enable parallel I/O operations with high throughput. This change, along with optimized background processing, results in a slightly faster indexing and startup on modern hardware. Solution loading has also been improved for projects that include references to Source Generators.
Want the full story behind these performance gains? Head over to our blog for a deep dive.
ReSharper is now also available as an extension for Visual Studio Code. If you use Visual Studio Code as part of your workflow, you can now benefit from familiar ReSharper features directly inside the editor. Code inspections, quick-fixes, navigation, and the Rename refactoring are all supported and powered by the same underlying engine.
ReSharper for VS Code is free to use during the public preview.
ReSharper 2025.2 brings initial support for the latest additions in C# 14:
ReSharper previews support for new C# 14 extension members by providing code completion, code analysis, Find Usages, the Rename refactoring, and more.
C# 14 continues to extend possibilities of source generation with partial events and constructors. ReSharper is updated to cover these new use cases.
ReSharper 2025.2 lets you use the new a?.b = c and a?[i] = c patterns to simplify your code while safely handling potential null values.
ReSharper now correctly understands and processes user-defined compound assignment operators introduced in C# 14.
ReSharper now recognizes the new #! and #: preprocessor directives.
LoggerMessage
ReSharper 2025.2 introduces several improvements to help you write more efficient and maintainable logging code with ILogger.
LoggerMessage-generated methods
ReSharper can now automatically convert your ILogger method calls into LoggerMessage-based methods. This reduces runtime overhead and improves performance, especially in high-throughput applications.
ILogger<T>
When writing ILogger<>, ReSharper now suggests the current type as a completion inside the angle brackets, saving you time during setup.
[LoggerMessage] attributes
ReSharper provides handy completion of parameter names in [LoggerMessage] attributes and correctly updates code when corresponding parameters are renamed.
LoggerMessage usage
ReSharper now detects missing parameters and duplicated log items in [LoggerMessage] attributes and provides quick-fixes to resolve these problems.
ReSharper recognizes more cases when range indexers can be used, for example, suggesting s[a..b] instead of s.Substring(a, b - a) where applicable.
ReSharper now identifies redundant bounds in range expressions more effectively, making your slicing operations clearer and more reliable.
ReSharper now integrates more tightly with Roslyn’s inspection settings, with support for enabling or disabling inspections via #pragma and Roslyn’s severity configuration.
Inplace refactorings now appear via inlay hints, making them easier to discover and consistent with JetBrains IDEs. You can configure their appearance under ReSharper | Settings | Environment | Editor | Appearance.
You can now quickly convert a method to a local function with a dedicated context action, improving code structure and readability.
ConstantExpected attribute
ReSharper warns when non-constant values are passed to parameters marked with the [ConstantExpected] attribute, helping you avoid subtle bugs.
switch arms
ReSharper detects duplicated switch arms and provides a quick-fix to merge them, making your code more concise.
ReSharper 2025.2 introduces further enhancements for modern C++ development:
#if-ed out blocks, without having to switch your active build configuration.#pragma directives, and other new coding assistance features.Learn more about the C++ updates from the What's New in ReSharper C++ 2025.2 page.
As part of the 2025.2 release, we will be discontinuing the TeamCity extension for Visual Studio.
This change is part of our ongoing efforts to streamline tooling and focus on the most impactful developer experiences. While we understand that this may affect some workflows, we believe this decision will ultimately lead to better performance and a more sustainable ecosystem across our tools.
ReSharper 2025.2 introduces experimental inspections to help enforce the Command Query Responsibility Segregation (CQRS) pattern. These inspections detect naming mismatches, context intersections, and conflicts between annotations and names. Quick-fixes are available that remove redundant attributes or rename entities to follow conventions.
CQRS validation is disabled by default and can be enabled in Options | Code Inspection | CQRS Validation. The required annotations are available in JetBrains.Annotations.