It is not unknown for the [MERGE FILES] section of the HHP file to get out of sync in previous versions. I can't really speak for RH7. You could try renaming the project's CPD file, manually amend the HHP file and reopen the master project and compile.
Thanks for the idea Colum, but I had already tried zapping the CPD (Causes Problems Daily).
Others have had this problem; see for example this post which suggests editing the HHP and recompiling.
Robohelp only updates the HHP when it thinks a real change has been made; that is why double-compiling works. But that is not an option for automated generation. BTW we do not use source control.
Progress report; we have half a solution. I edited the HHP file to use filenames rather than paths, deleted the XPJ and CPD files, and then recreated the project from the HHP file. Of course I then had to remake my conditional build tags and single source layouts, but it worked. That is, both the XPJ and the HHP have filenames rather than paths in the merge section. Further, if I remove the [MERGE FILES] section of the HHP, it is restored with the data from the XPJ.
But (I said "half a solution") when we use batch compiling (Robohelp's rhcl command) it all ends in tears. Robohelp converts the HHP file to use absolute paths before compiling. If I then do a compile from within Robohelp, the HHP file is restored to filenames.
Can anyone help further?
I solved this problem by making sure that the source folder for the parent Help file includes the latest child Help files. This resolved this problem for me. If you write new content in a child chm file that is not in the parent's source folder when the parent is built, the new content will not be found.
So, make sure the latest child1.chm, child2.chm, child3.chm etc files are in the parent's source folder. That fixed it for me. No need to delete the XPJ file, CBD file etc. You do need to make sure that the [MERGE FILES] section in the HHP file does not include the paths though.