Managing ReSharper Settings in a Team
- Transfer
- Tutorial
Today I want to talk about how you can centrally manage ReSharper settings at the level of a development team. By settings, I mean the formatter settings, Live Templates and ReSharper settings. They can be exported and packaged in so-called Declarative Extensions .
At the moment, all plugins for ReSharper are standard NuGet packages. This allows you to distribute them through the official NuGet feed from JetBrains or publish them in a private, closed NuGet server inside the company.
To export the settings and Live Templates, go to the menu RESHARPER-> Manage Options.

In this dialog you need to select the level (Layer) of the settings that we want to export.
Click the “Import / Export settings” button.

In the “Export To File” window, select the nodes “Code Style” and “LiveTemplates”. Then you need to specify the directory and name of the DotSettings file in which the exported settings will be written.
Once the settings are exported, you can start creating the NuGet package. You must describe the .nuspec file. For ReSharper 8.2, it will look like this:
In the case of ReSharper 9.1 .nuspec, the file will be slightly different. The Dependencies node should indicate the version of Wave, not ReSharper:
You will also need to change the target:
Where "YourCompany.Settings" is the identifier of the NuGet package.
Now you can build the package by running the command:
If we followed the previous steps without errors, then the package “YourCompany.Settings.1.0.0.nupkg” will be created next to the nuspec file.
As mentioned above, ReSharper can use the following sources of NuGet packages:
Publishing a package on a NuGet server is practically no different from publishing it on nuget.org.
In this article, for simplicity, as a NuGet feed, I will use a folder in the file system. This folder should be accessible from the computer of each programmer in the team. For example, it could be a shared exchange folder on a network drive.
After the package with the extension is published, we need to register a new source of extensions. To do this, go to RESHARPER -> Options ...-> Environment -> Extension Manager.

Click "Add", specify the name in the "Name" field and the path to the Artifacts, NuGet server or directory in the "Source" field.

To install the extension, go to the RESHARPER -> Extension Manager menu.
In the search you need to find our package and click Install.

Check that ReSharper has detected new settings. Open the Manage Options dialog and make sure that a new settings layer is displayed on the screen.

Now each member of the team can use the current version of the settings. If you change or update the settings, it is enough to publish a new version of the plugin, and ReSharper will automatically find the update and inform the developer.
At the moment, all plugins for ReSharper are standard NuGet packages. This allows you to distribute them through the official NuGet feed from JetBrains or publish them in a private, closed NuGet server inside the company.
Export Settings
To export the settings and Live Templates, go to the menu RESHARPER-> Manage Options.

In this dialog you need to select the level (Layer) of the settings that we want to export.
Click the “Import / Export settings” button.

In the “Export To File” window, select the nodes “Code Style” and “LiveTemplates”. Then you need to specify the directory and name of the DotSettings file in which the exported settings will be written.
Preparing NuGet Package
Once the settings are exported, you can start creating the NuGet package. You must describe the .nuspec file. For ReSharper 8.2, it will look like this:
YourCompany.Settings 1.0.0 TeamSettings Your name Your Company http://your-company.com false
Team settings and live templates for ReSharper
Copyright Your Company settings In the case of ReSharper 9.1 .nuspec, the file will be slightly different. The Dependencies node should indicate the version of Wave, not ReSharper:
You will also need to change the target:
Where "YourCompany.Settings" is the identifier of the NuGet package.
Now you can build the package by running the command:
nuget.exe pack nuspec-file-name.nuspec
If we followed the previous steps without errors, then the package “YourCompany.Settings.1.0.0.nupkg” will be created next to the nuspec file.
Publish NuGet Package
As mentioned above, ReSharper can use the following sources of NuGet packages:
- Official feed from JetBrains
- Any third-party NuGet server (for example, ProGet)
- TeamCity Artifacts
- Local or network folder
Publishing a package on a NuGet server is practically no different from publishing it on nuget.org.
In this article, for simplicity, as a NuGet feed, I will use a folder in the file system. This folder should be accessible from the computer of each programmer in the team. For example, it could be a shared exchange folder on a network drive.
Using Custom NuGet feed
After the package with the extension is published, we need to register a new source of extensions. To do this, go to RESHARPER -> Options ...-> Environment -> Extension Manager.

Click "Add", specify the name in the "Name" field and the path to the Artifacts, NuGet server or directory in the "Source" field.

Install extension
To install the extension, go to the RESHARPER -> Extension Manager menu.
In the search you need to find our package and click Install.

Check that ReSharper has detected new settings. Open the Manage Options dialog and make sure that a new settings layer is displayed on the screen.

Now each member of the team can use the current version of the settings. If you change or update the settings, it is enough to publish a new version of the plugin, and ReSharper will automatically find the update and inform the developer.
Only registered users can participate in the survey. Please come in.
How does your team work with settings?
- 17.6% One repository per team, settings in repository 3
- 0% One repository per command, settings in centralized storage 0
- 11.7% Multiple repositories per team, settings in each repository 2
- 11.7% Multiple repositories per team, settings in centralized storage 2
- 58.8% Do not use general settings 10