How to share the same Resharper settings between multiple solutions, with no manual intervention?

julealgon picture julealgon · Feb 15, 2013 · Viewed 21k times · Source

Our projects are organized in a master solution (containing every project) and multiple smaller solutions containing groupings of related projects.

I would like to share the same Resharper settings across every solution, making sure that the developers don't ever need to import configuration files in Resharper or do anything manually for that matter. The version we are using is one of the latest ones, 7.0.1. The DotSettings file checked in in TFS works great on a single solution, but replicating the same file for 20-30 solutions is a no-no.

Is there a way to share the same configuration with every project/solution in the whole team, without the need for the developers to configure this explicitly? Ideally, it should be possible to change the path to the .DotSettings file for each solution so that when a single .DotSettings file is edited it automatically affects every solution in the team.

Update:

I have searched a bit about this and tried 2 different methods, but none of them work 100%:

  • Hardlinks using the mklink tool work perfectly locally, but TFS does not support them
  • Normal shortcuts would also be a reasonable solution to this, but Resharper doesn't read them

I'm out of options here.

Update 2:

The solution proposed by Daniel Hilgarth works perfectly, but only if Resharper is updated. A bug that caused the .DotSettings files to be auto checked out and edited on every machine was corrected on the 7.1 release. I have tested this before and after updating the software and it now works as I expected.

More information about the bug can be found here:

http://youtrack.jetbrains.com/issue/RSRP-288235

Answer

Daniel Hilgarth picture Daniel Hilgarth · Feb 15, 2013

Resharper supports option layering.

You would use it like this:

  1. Have one DotSettings file with all your settings in it.
  2. For each solution perform these steps:
    1. ReSharper -> Manage Options
    2. Right-click "Solution 'Your Solution' team-shared"
    3. Select Add Layer -> Open Settings File
    4. Choose the central DotSettings file

This would create a DotSettings file for each solution. You need to check these into TFS along with the central DotSettings file.
Important: The DotSettings file of the solutions only contain a link to the central one, they don't replicate the settings.