ReSharper includes a set of project-level features that are especially helpful when working with large solutions.
In this section:
- Project-level refactorings
- Explore project hierarchy
- Analyze and optimize project references
- Find, explore, and install NuGet packages
- Build solution
- Run configurations
- Debugging assistance
- Debug modules that have no debug information (PDB)
- Clean up temporary files
- Dynamic Program Analysis (DPA)
Besides the items covered in this section, there are a lot of other features that are available in various contexts and may come in handy when managing projects:
Visual project dependency analysis allows you to get a project dependency diagram without compiling anything.
Referenced Code lets you find any outgoing references from your project.
ReSharper aids Visual Studio when it comes to managing state of nodes in the Solution Explorer. When you collapse a project or another high-level node in the Solution Explorer, plain Visual Studio doesn't collapse its containing nodes. As a result, when you expand the project at a later time, you find out that it reveals a sporadically expanded structure.
With ReSharper, you can right-click a Solution Explorer node and select Collapse All in the context menu — the selected node will be collapsed along with any its child nodes.
Collapse All is a perfect match for another ReSharper neat little feature - Locate in Solution Explorer. For example, you can start with collapsing a project, and proceed with using Locate in Solution Explorer for expanding nodes that you really need.
ReSharper's settings are saved using a distributed storage model, meaning that any setting or setting group can be saved separately and ReSharper will combine and apply all of them as it runs.
Among the benefits of this model are having different settings for different solutions, sharing settings effortlessly, importing and exporting settings, and more. It can be especially useful for sharing settings that should be same within the team: code style settings, code templates, structural search and replace patterns, and more.
By default, there are three setting layers: for all solutions in local computer, for the current solution, and for the shared solution settings. You can easily create, manage, and share new layers, for example for global company-wide settings.