Syncing Visual Studio Extensions and Settings with Dropbox

Idea

Sparked by a long wish for keeping my Visual Studio extensions and settings in sync across multiple computers, and a discussion with @kellabyte and @ackenpacken yesterday, I started to research how this could be done.

With a quick Google search, I found this blog post by the Visual Studio team, describing where Visual Studio 2010 looks for its extensions. The blog post specified \Common7\IDE\devenv.pkgdef as the file to modify in order to load extensions from additional places than the default ones you get “out of the box”. Further down in the blog post, PkgDefSearchPath was listed, and it seemed like a good to add a folder controlled by Dropbox. On my computers, this would typically be C:\Users\larsw\Dropbox\Visual Studio Settings and Extensions.

Before you start poking around in the file, I suggest you take a backup of the original one, in case of any f*ckups. As you can see from the default entry, it contains three paths in a semi colon separated list. I just apppended my chosen folder to the end of this list like:

“$ApplicationExtensionsFolder$;$RootFolder$\Common7\IDE\CommonExtensions;$RootFolder$\Common7\IDE\devenv.admin.pkgdef;
C:\Users\larsw\Dropbox\Visual Studio Settings and Extensions”

Before you start editing the file, I suggest you shut down all instances of Visual Studio, so the likelihood that the file won’t be write-protected or changed is minimal.

Migrating existing extensions

In the same pkgdef file, UserExtensionsRootFolder points at the default location for user-defined extensions – in my case, it points to c:\Users\larsw\AppData\Local\Microsoft\VisualStudio\10.0\Extensions. I chose to move all the sub folders (containing extensions) into my newly created Visual Studio Settings and Extensions folder controlled by Dropbox. As for the extensions located in the folder defined by ApplicationExtensionsFolder, I chose to let them be for know, because I suspect that they are having dependencies on native components etc. There were a lot of Microsoft default extensions, as well as JetBrains Resharper etc. located in the folder.

image

On my other computers, I had to update the same pkgdef file, let Dropbox sync the folder, start Visual Studio – & voila! The same extensions were present Smile

As for Visual Studio settings, it’s a supported functionality out of the box to share settings between Visual Studio instances across machines via (typically) a file share. The same functionality can of course be used with Dropbox. Go to Tools –> Options –> Environment –> Import and Export Settings, and point to a location inside the same Dropbox-controlled folder.

image

Be Sociable, Share!

  • http://Typecastexception.com John Atten

    Nice post! Thanks for the info . . .

  • Dan Vanderboom

    Good job Lars! I hope more of this kind of cloud enablement can be built into VS v.Next.

  • Dave

    Oddly enough I used an extension to accomplish the same thing: ExtensionSync
    http://visualstudiogallery.msdn.microsoft.com/dbaf0ac9-fb7b-4fb3-b34d-ea2269276d3c
    I am sure that it is doing the same thing or something similar.

  • Anonymous

    Not odd at all – I was simply unaware of it. Think I’ll stick with the Dropbox variant for a while, now it’s set up.

  • Kieran

    quality post and a really useful tip, thank you :)

  • J O W

    So the next step is (or does anybody know what will happen): If you use XP & Win7 feature “mklink [[/D] | [/H] | [/J]] link target” as the link in Dropbox?  So the “real” file is located on the HD, but the soft link is on dropbox.  If you are at home and update a file that is soft link, does it destroy the soft link or does the file get copied to the real location on the hard drive.

  • Ilias Tsagklis

    Hi Lars,

    Nice blog! Is there an email address I can contact you in private?

  • Kylie Wilson

    Very Nice post..well written..

    Here i would like to give a plug to my website..which your reader might find intresting…link is as below

    .Agile Certification