Apr 14, 2010

How to Share a Local Installation of Visual Studio 2010 Help

I don’t want to debate whether you should use a local Visual Studio 2010 Help installation or the MSDN web site. If you have already decided to use a local Help installation, you may want to access it from multiple machines, because it doesn’t make much sense to install the exact same content on every machine you use to develop software.

Why is this use case problematic? With the launch of Visual Studio 2010 and .NET 4, the formats of the local Help and the MSDN have been unified. So the user experience is very similar whichever way one chooses to use help. The local Help installation consists of a static file store exposed through an http agent. The user interface is the default web browser. The problem is that the http agent rejects requests unless they reference the host as ‘127.0.0.1’ or ‘localhost’.

The most obvious solution would be to install a web proxy on the machine where you have the local Help installation. That web proxy should simply redirect all the incoming traffic to the Help http agent. If IIS (Internet Information Server) had a built-in proxy module, I’d probably use it. Unfortunately, IIS only has a redirection module which is not the same and doesn’t solve the problem. So you have to install a standalone proxy. You could probably find a one-screen sample from WCF (Windows Communication Foundation), but you’ll still have to customize it and maintain it. I wouldn’t sign up for that.

What I recommend is a quick and easy way to point a local Help agent to a remote Help sore:

Find a drive letter that is available on all machines that will share the same Help installation. Let’s say that’s H:.

Share the root folder where you installed the Help content.

Map the H: drive letter to that folder on all machines from where you want to access that Help installation.

If you want to access it from the machine where you installed the Help, you should map the H: drive letter on that machine too.

Make sure you check the Reconnect at Logon checkbox.

Modify the manifest\queryManifest.3.xml file of the local Help store as follows: