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

.NetVisual StudioTfsResharperSolution

.Net Problem Overview


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

.Net Solutions


Solution 1 - .Net

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.

Solution 2 - .Net

The question is old, but if someone is still looking for the way to share team settings:

All the settings for R# can be exported and packed as a NuGet package and distributed as a regular ReSharper extension.

This gives you a flexibility: you can share different settings for different teams, ReSharper will take care of detecting the new version and notifying the developer. Well, basically all the benefits that you can get when using the NuGet.

Solution 3 - .Net

In Resharper 2015

Go to Resharper -> Options -> Manage(pic 1) -> Options -> Import and Export(pic 2) -> from file....

enter image description here

enter image description here

And if you what to import it for your team you can to Solution settings then instead of Import and Export in Options go to Copy Settings to -> team-shared.

enter image description here

Hope this saves you some time.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionjulealgonView Question on Stackoverflow
Solution 1 - .NetDaniel HilgarthView Answer on Stackoverflow
Solution 2 - .NetAnton SizikovView Answer on Stackoverflow
Solution 3 - .NetMatas VaitkeviciusView Answer on Stackoverflow