Recommended way to share settings across teams

149 views
Skip to first unread message

James Jensen

unread,
Aug 24, 2017, 11:22:28 AM8/24/17
to resharper-plugins
Our company would like to establish a baseline set of settings to use with ReSharper on a variety of projects that we work on.

It seems like putting a DotSettings file into a custom extension would be a great way to go. Each developer machine can have a one-time setup step to install the extension, and if we ever need to make global changes, we just update the extension via a nuget feed. However, there are a few details that get in the way:
1. The public NuGet servers that I'm aware of (including JetBrains' Resharper Plugins Gallery) don't appear to have team-managed permissions in place. We can't set up a company account and then add and remove permission for individuals to publish new versions of the extension as they enter and exit the team.
2. These settings aren't meant for a global audience. It would feel wrong to put the plugin in the ReSharper Plugins Gallery to show up for everybody, knowing that it's really only intended for our company's employees to use. (I also get the impression that ReSharper's extension manager downloads the entire list of plugins and filters them client-side, so adding another plugin could slow down the user experience.) 

We could use a private NuGet feed on VSTS, but ReSharper doesn't appear to be able to connect through the authentication layer there. I'm not sure if that would be fixed by adding NuGet 3 support or not.

I also tried bringing in the DotSettings file as a NuGet package dependency for a given project, but I'm not sure how tricky it will be to update the Solution-level DotSettings file to point to the new version whenever the NuGet package is updated.

So is there a recommended way to go about sharing settings like this for all the developers in a given organization?

Matt Ellis

unread,
Aug 24, 2017, 12:04:43 PM8/24/17
to resharper-plugins
Hi James. I'll need to check if the extension manager does support authentication, but if it's internal settings on an internal server, does it have to be an authenticated server? You could also add a custom feed that is just a UNC shared folder - \\myserver\share

Another alternative is to use the Solution Settings Autodiscovery extension. This will look for a file with an *.AutoLoad.DotSettings extension in the parent folders of a solution, and will load the settings in that file. This is most useful when you have a source repository that contains a number of solutions, and you want to share settings across all of those solutions - place this file at the root of the repo, and all solutions that live under that folder will load the settings.

The source to this plugin is on GitHub, so you could also write a similar extension that would load settings from anywhere you want - a known server share, or a web site, or a git repo, or whatever.

Regards
Matt
Reply all
Reply to author
Forward
0 new messages