Search code examples
c#installationinstallshieldchmrobohelp

How to add content to an existing application CHM help file?


Suppose i have my product, which installs a Windows help file (.chm). I know there are merged help files, master and child help files etc.

When an add-on installation is run for the product how can i add to this existing help file when the user then later installs another plugin/component that needs more help installed?

Does the original installation of the basic application need to already know about the new .chm that could be installed later?

Is it simply a matter of placing it in the same directory and calling hhc.exe upon the new plug-in's installation?

The chm's for the main application and the plugin for the application will be originally created with Robohelp, but how do i combine them when the user decides to install the plugin?


Solution

  • This cannot be done in an easy way - some ideas only:

    I assume that you have full access to the application development and setup, the help content (1), the add-on development and setup and the additional help content (2).

    A solution depends on your needs and what you are doing with your CHM's e.g. when context-sensitive help is used in your application. So it's difficult to answer.

    The hard way if you don't have the old help source files:

    1. Decompile the existing content to create the original source files.
    2. Modify existing content (or add new content).
    3. Recompile the Help project.

    I think you know merging information stuff from our Helpwaregroup site at: HTML Help - Using Merge

    Robohelp makes merging help project easier: RoboHelp: Merging Help Projects

    So, I recommend to build a merged CHM (first try one only) e.g for each of your single application base and add-on's with different file names. A installer must copy the new CHM to e.g. the help subfolder of your application when an add-on is installed.

    Of course you need to set the HelpNamespace property or whatever code you have to e.g foobar-0.chm or foobar-1.chm or foobar-2.chm depending on the installed add-on. Or try to overwrite the CHM with only one Name foobar.chm by installer.

    Edit: For using special functions of helpauthoring with HTMLHelp (HH) like context-sensitive help you need some more steps and knowledge.

    Please read from our Helpwaregroup site:

    1. Merge & Context Help IDs
    2. Context Ids in Merged Help

    Try it for your context-sensitive help needs with e.g. two CHM's in your application and add-on environment.