Search code examples
c#.netvb.netvisual-studiohelp-viewer

Microsoft Help Viewer can be used as an independent Application?


I have a machine with Windows 8 where I've installed VS2013 without Help viewer, and a VirtualMachine with the same OS and the same VS but with the Help Viewer package installed (Help Viewer v2.1).

I've create that VM with an unique purpose, I would like to be able to use Microsoft Help Viewer (or other alternative software, if exist) in my host OS without resinstalling VS2013 in my OS.

...So in a very basic intent of reverse engineering to be able to use Microsoft Help viewer in my host OS I've just copied these folders from the VM to my PC:

C:\Program Files (x86)\Microsoft Help Viewer

And

C:\ProgramData\Microsoft\HelpLibrary2

And added these keys:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Help]

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Help\v2.1]
"AppRoot"="C:\\Program Files (x86)\\Microsoft Help Viewer\\v2.1\\"
"DefaultHelpViewerCLSID"="{FE220E43-FE17-47BE-A57E-84D2B9A5635D}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Help\v2.1\Catalogs]
"ContentStore"="C:\\ProgramData\\Microsoft\\HelpLibrary2\\Catalogs\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Help\v2.1\Catalogs\VisualStudio12]
"LocationPath"="%ProgramData%\\Microsoft\\HelpLibrary2\\Catalogs\\VisualStudio12\\"
"LastUpdated"="02/26/2014 06:34:55"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Help\v2.1\Catalogs\VisualStudio12\en-US]
"SeedFilePath"="C:\\Program Files (x86)\\Microsoft Help Viewer\\v2.1\\CatalogInfo\\VS11_en-us.cab"
"catalogName"="Visual Studio Documentation"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Help\v2.1\Setup]
"AppRoot"="C:\\Program Files (x86)\\Microsoft Help Viewer\\v2.1\\"
"Install"=dword:00000001
"Version"="2.1.21005"

Notice the value:

"DefaultHelpViewerCLSID"="{FE220E43-FE17-47BE-A57E-84D2B9A5635D}"

I don't know what reffers that CLSID but a search on the registry of the VM with the search pattern FE220E43-FE17-47BE-A57E-84D2B9A5635D does not find anything (but the help viewer works properlly on the VM):

And I launch the Help Viewer (from commandline) with the same arguments as I get in the VM:

HlpViewer.exe /CatalogName VisualStudio12 /Locale en-US /Sku 3000 /LaunchingApp Microsoft,VisualStudio,12.0 /Manage

But when I press the Update button in the Help Viewer to download a package, just does nothing (of nothing) any error is shown or something else, just anything, so I can't download documentation or know what error I'm having.

Any idea to resolve this strange problem? maybe I need a missing component to copy on my host OS?

Microsoft Help Viewer can be just downloaded and installed as a standalone application?

Any alternative Software to replace Microsoft Help Viewer?

I've tried to use H3Viewer but seems that it's only for VS2010, when I try to use the library manager the program says that I have not VS2010 Help installed.

UPDATE:

I've solved the issue by downloading the documentation on the VM and copying them into my OS, but anyways I would like to know a solution for this problem.


Solution

  • I recently faced the same problem: I didn't want to install "Visual Studio 2015" just to be able to run the accompanying Help Viewer (v2.2) application.

    It took a little bit of time, but in the end I managed to get it running by following these steps:

    • On a computer with VS2015 already installed, I used SysInternals Handle 4.0 to determine which files are required by the HlpViewer.exe executable
    • I then ran Less MSIérables 1.40 and used its l -t File argument to iterate over all MSI packages, which revealed that most of the required files can essentially be found in two packages: help3_vs_net.msi and vs_minshellcore.msi.
    • To install these manually, one needs to pass some additional command line arguments:
      msiexec.exe /i help3_vs_net.msi VS_SETUP=1
      msiexec.exe /i vs_minshellcore.msi MSIFASTINSTALL="7" VSEXTUI="1"

    Regrettably, after that some files are still missing ... to keep things simple, I copied the rest of them from the (aforementioned) working installation:

    • C:\ProgramData\Microsoft\HelpLibrary2
      Essentially only contains a CatalogType.xml and some empty directories.
    • C:\Program Files (x86)\Microsoft Help Viewer\v2.2\CatalogInfo\VS11_en-us.cab

    Moreover, it's necessary to provide the application with a valid ContentStore path by importing the following .reg file:

    Windows Registry Editor Version 5.00
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Help\v2.2\Catalogs\VisualStudio14]
    "LocationPath"="%ProgramData%\\Microsoft\\HelpLibrary2\\Catalogs\\VisualStudio14\\"
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Help\v2.2\Catalogs\VisualStudio14\en-US]
    "SeedFilePath"="C:\\Program Files (x86)\\Microsoft Help Viewer\\v2.2\\CatalogInfo\\VS11_en-us.cab"
    "catalogName"="Visual Studio Documentation"
    

    Finally, I created a new Application Shortcut and changed its Target: to read as follows:
    "C:\Program Files (x86)\Microsoft Help Viewer\v2.2\HlpViewer.exe" /catalogName VisualStudio14 /launchingApp Microsoft,VisualStudio,14

    Et voilà, with that HlpViewer.exe finally executes without any problems!