Last Updated: 03-June-2009
This page contains trouble shooting tips for MS Help2 and the
FAR Help Shareware program.
See also: MS Help 2 Info Page | FAR Home Page | H2Reg Home Page | MSHelpWiki.com
See also Jot Notes
|Q. Does VS 2010 use MS Help 2.x?|
|No. Starting with VS 2010, there is a new help system called MS Help Viewer 1.0. You will need to tweak your Help 2.x projects to make them compatible and integrate into VS 2010 help.|
|Q. Where has HxConv.exe and other Hx*.exe SDK files gone?|
The H2 utilities were accidently removed from VS 2008 SDK
(including hxcomp.exe, hxconv.exe, hxcsrv.exe,
Ed Dore [MS] posted this in the MS forums:
The HxConv.exe and HxMerge.exe utilities were inadvertently removed when the development team pulled the Archive sample folder out of the SDK. Unfortunately, the Help 2.0 utilities were inappropriately contained in the old Help Integration sample, and were not moved to a more appropriate location. The components can still be retrieved from the older V4 SDK (for VS 2005). There is a bug logged against this, but the Help experience for VS 2010 will be updated to MS Help Viewer 1.0, so the tools may not appear in the next version of the SDK either.
Workaround? Find a machine with VS 2005 and install the VS 2005 SDK. Copy and paste the missing utilities into the VS 2008 SDK directory?
Usually C:\Program Files\Common Files\microsoft shared\Help 2.0 Compiler\
|Q. Why wont HxConv.exe convert my .CHM files? [2006-07-29, VS 2005 SDK]|
VS 2005 no longer converts .CHM files (to an MS Help 2.x
project). If you try to you will get the following error
Error HXCONV2011: Unrecognized file type '...\somefile.chm'. Must be one of hhp, hhc, hhk, html, or col.
MS had to drop the functionality from VS 2005 (long story). VS 2005 SDK HxConv.exe still converts .HHP projects.
If you do have a .CHM without source your options are:
|Q. How do I plug into VS 2005/2008 Express? [2006-06-24, VS 2005]|
VS Express is a cut-down version of VS. Plugging into
the express version is the same as other versions. Simply
plug into ms.vsipcc.v80 as usual (ms.vsipcc.v90 for VS 2008).
However products such as our H2Reg which register collections and perform a pre-merge, need to merge the collection "ms.vsexpresscc.v80" (normally ms.vscc.v80). See the H2Reg home page for more info.
MS did not plan on 3rd party plug-ins in VS 2005/2008 Express. If you want your plug-ins to appear in Express then an extra attribute "DocSet=ExpressLibVS" is required in the XML data Island of all HTML files. See thread in MSHelp2 Yahoo Group.
|Q. Where is the Help Integration Wizard for VS 2005? [2005-11-30, VS 2005]|
Go to http://msdn2.microsoft.com/en-us/vstudio/aa700819.aspx. You should also download the VS 2005 SDK since it contains some documentation (last time I checked) on Help Integration Wizard as well as the usual MS H2 authoring tools and documentation. VS 2005 SDK also contains an updated MS Help 2 Authoring tool, HelpStudio Lite by Innovasys. See also VS 2005 Free Authoring.
Note: To find out what version of Help Integration Wizard is installed, examine the assemblies which youíll find in the "\Program Files\Microsoft\Help Integration Wizard\bin" folder (assuming a default install). The most recent version (30-Nov-2005) is 2.0.51109.0. Setup will uninstall older versions before installing the new one, so users can just run the RTM setup to replace any Beta version on their machine.
|Q. How do I install VS SDK without VS 2005? [2005-7-29, VS SDK 2.5, VS 8.0]|
Unblocking VS 2005 SDK (contains Help 2.x SDK for VS v8.0 2005)
31-Jul-2005 - Update: Added Martin's new patch for VS 2005 SDK APRIL 2006 release (so now we have a patch for the original OCT 2005 SDK & the APR 2006 SDK).
Note that for older VSHIK unblocking under VS 7.x see How do I install VSHIK without VS .NET? below.
Why do we want this? Because VS is very expensive and authors can write and compile help using FAR and other authoring tools without the need for purchasing VS. Also if you are integrating help into a 3rd party systems such as Borland's Delphi 2005+ then purchasing VS not required and a waste of money.
James: It's worth mentioning that users now only need to install 'vssdk.msi' to get the help compiler, not run 'setup.exe' (which installs some extra stuff such as Help Studio Lite).
The new Whidbey IDE comes along with the .NET 2.0 and its
new SDK does not reflect the structure of the former VSHIK.
I have made the investigation on the Visual Studio .NET 2005
Beta 2 SDK installation and created the new patch for the
use with this new SDK, containing the material for the Help
2 authoring. Just follow Robs instructions above.
Robert: Note that the VS 2005 SDK documentation is now on-line here.
|Q. Additional Notes - Feb 2007 v4 VS SDK without VS 2005? [2007-06-29, VS 2005]|
Carrying on from How do I install VS SDK
without VS 2005? above...
VS 2005, Feb 2007 VS8 v4
SDK can be installed without VS 2005 if you follow these
instructions from Wieland Scholz.
You're done. Hope that helps also other people
|Q. Where is VSHIK Help SDK? [2005-06-25, VS 2005 Beta 2]|
Help 2.0 SDK is no longer a separate download. It is now
part of the VS SDK (formerly VSIP SDK).
A free download from: http://msdn2.microsoft.com/en-us/vstudio/aa700819.aspx
|Compile Warning HXC6048 with VS v8 Beta 2 [2005-07-02, VS 2005 Beta 2]|
I can't remember my collection giving this warning under
Warning: HXC6048: File D:\..\h2reg.HxK, Line 0, Char 0: No Term defined in tag <Keyword ...>. Ignored.
Mark Brandjord [MS Help team] kindly steered me right. My HxK contained an empty attribute Term="". According to the .HxK DTD the Term attribute is required and after I filled this in the warning went away. I could have ignored the warning since the result was ok. The difficult thing here was the Warning message was completely misleading. It said Line 0, Char 0 however the problem was on the last element of my .HxK file <Keyword Term="">.
|Plug into MS.VSIPCC.v80 not MS.VSCC.v80 [2005-06-25, VS 2005 Beta 2]|
MS now recommend you plug into MS.VSIPCC.v80 and not
MS.VSCC.v80 (MS.VSIPCC.v80 is plugged into MS.VSCC.v80).
It is designed to keep
3rd party help grouped together and out of way of the MS
collections. And in the event that something goes
terribly wrong, you can simply unplug MS.VSIPCC.v80 to
unplug all third party collections.
Additional: Microsoft MSI registration does more than simply register/plug-in your collection. In VS 2003 it also regenerated the base MS.VSCC collections. So now by plugging into MS.VSIPCC.v80 there a little less risk involved.
|Q. Can I control Plug-in Order? [2004-11-26, VSHIK 2.5, VS 2005]|
Only MS Help 2.5.x and greater supports plug-in
order. MS Help 2.5.x is installed with VS 2005, as well as
later versions of MSDN etc. Plug-in
order is achieved by adding IDs to your Master TOC and to
the TOCs of collections that plug into that. Thus you can
control the order when plugging into your own collections
but not when plugging into say MS.VSCC (since you do not
control the source and its TOC IDs).
14/April/2007 - This documentation is now in online in MSDN. Or search you VS SDK for a topic labelled "Inserting the TOC of a Child Collection into a Parent Collection".
|Q. What is the Collection Manager Page? [2005-06-25, VS 2005 Beta 2]|
VS 2003 and VS 2005 collections contain a built-in "Collection
Manager" page where you can plug/unplug collections.
Very useful if you or your customer has a corrupted VS
Collection and need to unplug a suspect 3rd party collection.
Also useful if you want to use a different MSDN Quarterly
Note: In earlier versions of VS users could go to the "Tools > Options > Environment > Help > Preferred Collection", and swap out MS.VSCC for a MSDN Quarterly Library. This of course broke all 3rd party help integrated into VS. Thankfully MS appear to have removed this option from VS 2005.
How to find the Collection manager page:
For VS 2003 open the home page, and click on the link "Visual Studio .NET Combined Help Collection Manager". The Collection Manager will show you the list of collections plugged into VS 2003 collection. Uncheck collections that you want to remove from VS 2003 and click Update VSCC. After that you have to close and restart VS and the doc viewer. It will take several minutes to remerge the VS .NET 2003 combined collection.
Alternatively you can open the Collection Manager page in Explorer by pasting
the following URL into IE address bar:
For VS 2005 paste this URL into IE address bar:
The VS 2005 Collection manager covers plug-ins for MS.VSCC.V80, MS.MSDN.V80, MS.MSDNARCHIVE and MS.VSIPCC.V80 (I simply did a view source). Unfortunately the page does not list these collection names. It simply lists the namespaces (with checkboxes) that plug into these collections.
|Q. Why wont DExplore detect/auto-merge my registration? [2005-06-25, VS 2005 Beta 2]|
For VS v8 Beta 2 MS decided to disable the DExplore
detect/auto-merge feature. Thus under Beta2 you will
register and plug-in your collection but it will never merge
or show unless you performed a merge at registration time
(which is what they wanted to encourage). This decision has
now been reversed and the RTM (release to manufacturing)
version has gone back to the old way (thankyou!).
In beta 2 then how do you force a merge so I can see my plug-ins?
Update: 18-Aug-2005 -- thanks to Mark Brandjord [MS] and
Jeremy Jones [MS].
With VS 2005 Beta 2, the VSIP CC merge
module (VSIPCC_Collection_Files_RTL_---_---.msm) contained
only 1 custom action, which performed a merge on the
ms.vsip.v80 collection. Thus developers don't see their
collections merged. With VS 2005 RTM the issue will be fixed
and the VSIP CC merge module performs 2 custom actions - a
merging both ms.vscc.v80 & ms.vsexpress.cc. When available,
under VS 2005 RTM you should update
VSIPCC_Collection_Files_RTL_---_---.msm to fix the merge
|Q. Fatal Error HXC2064: Unable to initialize the full-text index engine [2005-02-22]|
Earl Seugling contacted me after his compiles all started
failing on the build machine with error HXC2064. I contacted
the MS help team who very kindly checked the code and
suggested two possible situations that could cause this
We discovered that every time you compile a HxS file there is a file TMP*.tmp created (approx 100K with a ITOLITLS signiture) in the %TEMP% folder. In Earl's case their build machine had produced 7.6GB of .tmp files completely filling the drive. Removing the .tmp files fixed the problem.
|Q. How do I fix a broken MS Help 2 Installation? [2005-03-14]|
Stuff happens under Windows. MS Help 2 documentation like
everything is dependant on services from a number of DLLs
and ActiveX controls. If these become unregistered or
corrupted then MS Help 2 documentation can fail or
If you are having big problems then one
resource you can try is
|Q. Help Services Locked [2004-08-06, VSHIK 2.2, VS 7.1]|
A user in the MSHelp2
Yahoo group reported registration attempts were failing.
H2Reg giving a message: "MS Help 2.x services have been
locked by another process. If this error persists restart
Windows to release the lock."
Normally a reboot would clear the lock but in this case it didn't. Mark Brandjord [MS] (Marc now looks after the H2 API for the Help team) posted this helpful reply:
See also: H2 Posts
In <MSHelp2@yahoogroups.com>, "Mark Brandjord" <markbran@m...>
It sound like you started a help installation that has not completed, for one reason or another.
Check for the presence of the file: C:\Documents and
Settings\All Users\Application Data\Microsoft Help\Rgstrtn.lck
If that file is on the system, it prevents another help install process from running until the one that is currently running completes.
Rebooting the system should clear that file.
If the file is still there after reboot, you can manually delete the file to clear the lock; however this means that one of help systems you installed recently did not complete its installation correctly. When the lock file is created, a directory in the Microsoft Help folder is also created to back up the HxN/HxL files that get changed during a transaction. On Commit, this folder is thrown away, on Revert/Rollback, the backups are restored. The name of this folder is the GUID representing the product key that created the transaction.
I hope that this helps.
In <MSHelp2@yahoogroups.com>, "earlseug"
After doing some more digging I finally found a mention of Rgstrtn.lck in another group. Deleting it did the trick.
Thanks for the explanation of exactly what this .lck
files purpose is. As they say knowledge is power.
|Q. How do I unregister files have been removed from disk? [2004-1-23, VSHIK 2.2, VS 7.1]|
All User registration info is kept in this folder.
c:\Documents and Settings\All Users\Application Data\Microsoft Help
or c:\Documents and Settings\All Users.WINDOWS\Application Data\Microsoft Help
User restricted registration info is
kept in a similar folder. From memory...
nslist.hxl - Contains list of all registered namespaces.
A collection registration under Namespace = XYZ, Locale 3081 = English (Australia).
XYZ.hxn -- Namespace info for XYZ.
Maybe you need to delete some registration info files. However the safest way to unregister files is to use a tool like Namespace.exe (comes with VSHIK) or FAR (shareware from http://helpware.net/FAR/ ).
Problem if you remove files before they are first unregistered the H2 API is not happy and will fail to unregister. FAR on the other hand will successfully unregister collections even if files have been removed.
|Q. Can I access XLM Data Islands via IE5 DOM? [2004-1-23, VSHIK 2.2, VS 7.1]|
|A. Yes. See http://msdn2.microsoft.com/en-us/library/ms763742.aspx|
|Q. How do I write help for .NET application? [2003-10-17, VSHIK 2.2, VS 7.1]|
|MS Help 2 help was designed for the VS .NET environment only (and now also for Borland .NET online help). The applications you create with VS .NET ordinarily use HTML Help 1.x (chm files). Notice that VS .NET applications no longer support Context IDs. Instead use an index to store the mapping info (A or K). Alternatively keep "Context ID to URL" mapping information on the application side (in an INI file or maybe in code defined in a switch statement).|
|Q. How to add Dynamic Help for a tool window? [2003-10-17, VSHIK 2.2, VS 7.1]|
|Marc Young [MSFT] discusses how to manage dynamic help when there is a tool window up that may or may not have focus. Read Marc's Newsgroup reply.|
|Q. Why does my TOC not show? [2003-9-4, VSHIK 2.2, VS 7.1]|
The most common problem with plugging into another
collection is that the collection-level HxT file is not
setup correctly. You must include each TOC by using its
<?xml version="1.0"?> <!DOCTYPE HelpTOC SYSTEM "ms-help://hx/resources/HelpTOC.DTD"> <HelpTOC DTDVersion="1.0" PluginStyle="Flat"> <HelpTOCNode NodeType="TOC" Url="MyTitle1"/> <HelpTOCNode NodeType="TOC" Url="MyTitle2"/> </HelpTOC>
|Q. My VS IDE is reset after installing VSHIK? [2003-9-4, VSHIK 2.2, VS 7.1]|
2003-9-3: Post by Marc H. Young [MSFT]
I spoke with one of our devs who explained that the VSHIK installer *does* call devenv.exe with the /setup switch, which resets the IDE to its default state. This isn't a bug, but a necessary (albeit inconvenient) part of the VSHIK installation.
|Q. How do I find the VS Lang, Current MSDN NSpace [2003-8-27, VSHIK 2.2, VS 7.1]|
2003-8-27: Post by Marc Islam [Program Manager, Microsoft NUI Help]
Visual Studio.NET uses several keys in the registry to keep track of the default help system. The example below only applies if the user explicitly sets VS to use the MSDN namespace. By default, the namespace used by VS is MS.VSCC.2003 and the MSDN namespace is "plugged into" MS.VSCC.2003 through a different mechanism. Unfortunately, there are no supported interfaces for discovering plug-in relationships among namespaces.
|Q. Weird Errors [2003-3-10, VSHIK 2.1, VS 7.0]|
All these weird errors were fixed by deleting the Internet Explorer temporary internet files.
|Q. Alternate Development and Installation Tools? [2002-12-5, VSHIK 2.1, VS 7.0]|
|You can avoid Visual Studio
and MSI Installation completely.
Shareware FAR HTML fully supports MS Help 2.x authoring outside the VS environment. It offers a numerous time saving tools including Import/Export of all Namespace info from/to a H2Reg Script file. FAR Home Page: http://helpware.net/FAR/
Shareware H2Reg can register namespaces, titles, filters, plug-ins without the aid of MSI. H2Reg Home Page: http://helpware.net/mshelp2/h2reg.htm
VSHIK normally requires VS .NET to be installed, but there is a workaround.
|Q. How can I get the TOC icon strip? [2002-11-01, VSHIK 2.1, VS 7.0]|
|H2 allows you to add your own
custom icon to your TOC. You supply a BMP file containing an
alternative strip of 16x16 icon images to use. The file must be
in the same folder as the project (.Hx?) files. The BMP must be
16 pixels high and 16*n pixels wide.
Important: You must add the BMP file to your projects .HxF include file.
Tip: Start with a copy of the original H2
image file and extend this with your own 16x16 images. The
original icon strip can be extracted from hxvz.dll (Typically
|Q. Why change MS.VSCC namespace name? [2002-9-20, VSHIK 2.1, VS 7.0]|
|Early 2003 we should see the release of Visual
Studio .NET Version 7.1 (code named Everett). Because of the the many new changes, MS have decided
to change the 7.1 general VS namespace name to VS.VSCC.2003. This allows
users to install 7.0 and 7.1 side by side.
H2Reg Tip: If you have content appropriate for both MS.VSCC and MS.VSCC.2003 then I suggest you alter your H2Reg registration script file (for plug and unplug) to include both possibilities. If one of the VS Namespaces does not exist then that registration will fail gracefully with not error message (provided that H2Reg error checking is disabled).
2002/12/5: Note that H2Reg version 1.2.1 now
supports a trailing "+".
H2Reg Home Page: http://helpware.net/mshelp2/h2reg.htm
|Q. Where can I download MS Help 2.x SDK? [2002-4-11, VSHIK 2.1, VS 7.0]|
|The H2 SDK is now available on the MS website. It is available as the new VSHIK (Visual Studio .NET Help Integration Kit). See H2 Info Page for details.|
|Q. Where is the VSHIK Documentation? [2002-4-14, VSHIK 2.1, VS 7.0]|
|After installing VSHIK you will find the online
documentation under the namespace of MS.VSHIK (vshik
2.1) or MS.VSHIK.2003 (vshik 2003). For some reason VSHIK 2.1
does not setup a shortcut link to Help, you need to do this yourself.
MVP David Liske: Create a shortcut to the docs, use the following
"c:\program files\common files\microsoft shared\help\dexplore.exe" /helpcol
|Q. How do I get VS .NET Dynamic Help to work? [2002-5-16, VSHIK 2.1, VS 7.0]|
The information in the VSHIK White Paper on required attributes is incorrect. MS has acknowledged the following bug:
Appendix B in the DH integration guide is incorrect. The only required attributes are TopicType and Locale (The white paper forgot to mention TopicType). Also you should *not* use the HelpPriority attribute unless you absolutely need it for disambiguation.
We (Michael) have written our own tutorial to help
clarify this confusing Beta document:
|Q. How do I find the Path to the VS .NET Folders? [2002-10-29, VSHIK 2.1, VS 7.0]|
Here is the recommended way to find the location of the VS .NET Environment
for VS 2002 - HKLM\SOFTWARE\Microsoft\VisualStudio\7.0} value InstallDir
EG: InstallDir = c:\Program Files\Microsoft Visual Studio
A more handy path is at Key:
Microsoft's VS .NET Dynamic Help code apparently finds the Link Group path like this:
InstallDir + "html\xmllinks\" + LCID
What VS.NET language is install?
Note: Next VS .NET version 2003 will be 7.1 rather than 7.0
What are the current LCIDs being used by VS .NET 7.0
Foreign language install is a tricky area. MS themselves are currently looking at the best way to advise customers. If you look in Visual Studio help options (Tools > Options > Environment (folder) > Help) you can see the user can select both the help language and preferred collection. Now 99.99% of the time you can go with the VS studio language, but what if the user prefers MSDN Quarterly Library help (normally in English) on a German PC.
My advice at this time for those installing several help language options is
|Q. How to make links that wont break? [2003-3-17, VSHIK 2.1, VS 7.0]|
The VS 7.1 release now has Namespace MS.VSCC.2003 (was MS.VSCC). The following path represents Spanish VS 7.1. ms-help://MS.VSCC.2003/MS.MSDNVS.3082/etc
How do we make links in this changing environment?
Firstly if possible keep links in your help relative.
Instead of using the Namespace names in your path, use
ms-help:/../.. type notation. For example:
The next best advice when linking to MS topics is to use Keyword Links like MS do rather than a hard coded path link. MS use XLinks which are simply links to A Keywords using the format <MSHelp:link ...>text</MSHelp:link>
for an MS topic is often identical to the file name of the
topic minus the '.htm' portion. For information on creating
an XLink see your VSHIK documentation.
I went to a random page in MS.VSCC collection.
<MSHelp:Keyword Index="A" Term="vxtskSearchingObjectsS"/>
|Q. How can I speed up first time open? [2002-6-3, VSHIK 2.1, VS 7.0]|
When a collection is made up of multiple .HxS files, Help merges the
keyword indexes and TOCs in each of those files. This is why after
registering say a plug-in there is a long delay experienced when you next open
Merging a namespace creates the combined keyword indexes (.HxW files) and combined TOC files (.HxH files). You can find .HxW and .HxH files in the same directory as .HxN/.HxL files. They are created by the Help runtime and cannot be pre-built (in the way that you can pre-build HxI, HxQ and HxR files to optimize Index and Attribute lookup time).
There is no way to eliminate the namespace merge. What you can do, is make the namespace merge part of setup. Users are much less likely to notice it as part of setup then when they are watching the "Help is updating..." dialog the first time you launch VS.
The VSHIK MSI install performs the Namespace Merge automatically if the collection is MS.VSCC. The Helpware H2Reg Utility performs the Merge only if you specify a -M switch on the command line.
In the whitepaper it mentions which msm this "Merge" custom action is in. If you open that in Orca you can see the custom action and that it has a parameter "MS.VSCC". If you edit this to some other parent collection then the custom action will perform the merge on that namespace.
(Thanks Kipper York of MS for helping out with this explanation)
|Q. How do I install VSHIK without VS .NET? [2002-7-24, VSHIK 2.1, VS 7.0]|
Unblocking VSHIK 2002 (V2.1 for VS .NET v7.0 2002)
I downloaded VSHIK2003.exe and could not get it to unzip. However, I ran it "as is" and, at the end, when the dialogue says that it cannot install and to close the installer, I left that window open and looked in C:\Documents and Settings\rwagner\Local Settings\Temp. I don't know if it would be the same for everyone or not but I found the VSHIK2003 files (unzipped) in "IXP000.TMP." I copied these files into the directory created by unzipping patch_vshik_setup.msi and then closed the installer window. Closing the installer window causes the installer to remove the temporary files so you MUST leave the window open to locate the files.
|Q. What platforms support MS Help 2? [2001-11-17, H2 Preview 2.0.9064.0]|
|27-Aug-2003: MS Help 2
Runtime obviously installs on any machine that can install MSDN
or VS .NET (ie. most platforms). MS Help 2 SDK (VSHIK) download
page clearly states:
Supported Operating Systems: Windows 2000, Windows Server 2003, Windows XP
|How do I fix missing DTD compile error? [2001-11-17, H2 Preview 2.0.9064.0]|
|Error HXC4001 File xyz.hxc, Line 2, Char 77 XML Syntax Error No data is available for the requested resource. Error processing resource 'ms-help//Hx/Resources/HelpCollection.DTD'.|
|The compiler cannot find the specified XML DTD
file. When installing the H2 SDK you may have had a newer version of H2 runtime
installed (eg. VS.NET or MSDN). This can cause the "Hx" collection to not
You can fix this problem by adding Resources.HxS by hand to the Hx collection. I'll describe how to do this using FAR 3.0.2.
Background: H2 runtime contains a collection called "Hx" containing a single help file called HxRuntime.HxS. The SDK install adds to this collection another help file called Resources.HxS, which contains all the DTD files used when compiling.
|Q. Collection-level files do not contain the DTD references? [2001-11-17]|
|Look inside your help project Hx? source files.
All files that need to be compiled into a target .HxS help file contain a
reference on line 2 to a DTD file.
Uncompiled "collection-level" Hx? files, should _not_ contain the DTD reference line. To do so will cause a problems on your customers machine. Only machines with VSHIK will have the DTD files installed. Collection-level files should look like this...
|Q. Umlauts cause XML errors when compiling? [2001-12-18, H2 Preview 2.0.9064.0]|
|Looks like escaped umlauts (eg. ‹ ->
Ü) can cause compile errors. This is a known issue with the current
version of the compiler.
Marc Islam (MS) reports: I'm able to use umlauts as long as my source file is saved as UTF-8. If it's ANSI, then I also hit the XML parse error. Try opening your file in notepad and saving as UTF-8.