I have this working currently using RH6.
Check that your .hhp file does not list hard-coded paths - this will break merged search and index. Unfortunately we have to follow the following procedure each time we compile.
1. Compile project.
2. Open the .hhp file.
3. In the [MERGE FILES] section, delete the paths, leaving only the chm file names
(I'll assume all your child chms live in the same folder.)
4. Regenerate the project.
This has to be done for all projects that have merged chms in them (so Project B and A in your example) each time you generate the help.
Also ensure you have Binary Index ticked under File > Project Settings.
P.S. Actually I think I might have had to hack the project A xpj file too.
1. I have Project C listed in the Project B TOC.
2. I have Project C listed as a missing file in Project B Baggage Files (long story, I can expand if necessary.)
3. Project C DOES NOT appear in the TOC or baggage of Project A.
4. I DO have Project C listed in the Project A xpj file.
There is a <mergedfiles> section of the xpj file that lists all of the merged chm files you added to your TOC.
Copy one of these entries, <file> to </file>, and change the chm file to the Project C name.
This will not show up anywhere in your Project A project. But I think that might be what gets the index and search working.
I appreciate your help but I'm still not having luck with my build.
I compiled Project C. (Actually 3 projects at the "C" level)
I refreshed the merged file references in the TOC of Project B thenI compiled Project B, then edited the hhp removing the paths to the merged files. (I don't know where these merged references came from; some are files that are not relevant to Project B and in some cases do not even exist.)
I re-compiled Project B. The index at this level contains all the levelB and C entries.
I refreshed the merged file references in the TOC of Project A then compiled Project A, then edited the hhp to remove the paths to the merged files.
I recompiled Project A. The index at this level contains Project A and Project B entries but is now missing all level C project entries.
In reference to your PS, I don't know what you mean by hacking the xpj file. I find no "merged file" section in the open project and do not understand the file copy instructions:
"Copy one of these entries, <file> to </file>, and change the chm file to the Project C name."
1 person found this helpful
Sorry, I should have said I opened the xpj file in a text editor such as Notepad. Here's a sample of the area you need to look at:
So you would open the ProjectA.xpj in a text editor, copy the green text and paste it just before </mergedhelpfiles>. Then change the name ProjectB.chm to ProjectC.chm in the newly pasted section.
It's a hack, because you don't want Project C to appear in your Project A toc, and it's normally your TOC that controls these entries.
I have had some positive results. Here is what I have done so far:
I modified the .hhp files and the .xpj file as suggested but the results were the same: missing indexes in the final merged chm. TOC is OK.
I carefully built a new help system with three levels: Project A contains Project B which contains Project C. Each Project has a single book, a single topic, and an index. I paid careful attention to chm filenames (no spaces or underscores) and I directed all generated files to a common folder. I kept default settings and made none of the suggested file modifications. Essentially a virgin help system. As predicted, the results were the same: missing Project C index. TOC is OK.
I noticed that the Project A .hhp file included only Project B (with no pathname) in the [MERGE FILES] section. I modified the Project A .hhp by adding Project C in the [MERGE FILES] section.
I generated Project A. It now includes all three levels of index. The TOC is OK but was never a problem in this project.
I have not tested this on my more complex "real" help system.