Latish Sehgal's Blog

ExtensionSync: A Visual Studio Extension to Synchronize Other Extensions

Update: I have released a new version of ExtensionSync. Details here.
One of the things I love about the Google Chrome browser is how it seamlessly synchronizes my bookmarks and extensions across multiple installations. Visual Studio 2010 has a really good extensibility model, and developers are contributing all sorts of awesome extensions to  the Visual Studio Gallery. As somebody who uses Visual Studio extensions and codes at more than one pc on a regular basis, I thought it would be interesting to see if I could synchronize my extensions automatically. I have been working on an extension to do this and have had some success with it. This has been implemented using interfaces like SVsExtensionManager and SVsExtensionRepository, which are subject to change according to the documentation, so use this extension at your own risk. The code is available at Github if you would like to change something.

You can download the extension from the Gallery, or by searching for ExtensionSync in the Visual Studio Extension Manager. Once the extension has been installed, configure the directory you want to use for storing your settings by going to Tools->Options->ExtensionSync. Visual Studio will save your settings in this directory every time it closes, and it’ll also read the settings file and update extension every time it starts (It also does this when you configure a new Settings directory, but this should be a one time thing). I recorded a screencast to explain the workflow. This is my first screencast, hopefully the quality improves as I practice more Smile.

I think Microsoft would probably roll out something like this as a part of Visual Studio sometime down the line. It would be nice to use the cloud and have Visual Studio remember all my settings for me (Maybe the user’s settings could be associated with his Windows Live ID). Till then, I hope my extension can be of some use to you.

Update: I got back feedback from a user that Visual Studio was crashing for him while syncing with Windows Live Mesh. I have not been able to replicate the issue, but if you face any problems, deleting the settings file should let you get back to normal. You can also file an issue on Github, if you find any. I would love to get some feedback (good or bad). Update2: The issue should hopefully be fixed with version 0.1.2. This extension can only synchronize VSIX extensions and not those installed by MSIs. Hat Tip to Graeme Foster and @efvincent for helping me replicate the issue.