misc‎ > ‎share‎ > ‎

H3 Corrupted Data Store

I'd been installing and uninstalling this book all day. Not a problem.
   "Helpware \ H2Reg Test \ H2Reg Test Book" (vendor \ topic \ book) - File: helpware_h2reg.mshc

Mmm.. I registered Helpware book... It created a new in folder \20b3fb58-67e6-4a32-8d7e-3df56b298461


Here is folder \20b3fb58-67e6-4a32-8d7e-3df56b298461


Both questManifest.xml files were the same except the new one had my new book

questManifest.34.xml

<sourceFile vendorPath="Helpware\store" fileName="helpware_h2reg.mshi" />

20b3fb58-67e6-4a32-8d7e-3df56b298461\questManifest.xml

<sourceFile vendorPath="Helpware\store" fileName="helpware_h2reg.mshi">
  <contentFiles>
    <contentFile vendorPath="Helpware\store" fileName="helpware_h2reg.mshc" />
  </contentFiles>
</sourceFile>


I could not view the Helpware book. But the HLM could list it as in the store.



When I tried to uninstall via the command line it failed... 400 FailedOnSilentInstall

helpLibManager.exe /product VS /version 100 /locale en-us /silent /uninstall /vendor Helpware /mediaBookList "H2Reg Test Book" /productName "H2Reg Test"

When I tried to remove it via HLM UI it seem to uninstall correctly and said completed correctly.

But it was still listed in the HLM.

Try again and get exception...



An error occurred while removing local content: Microsoft.Help.Index.HelpIndexException: file "helpware_h2reg.mshc" not found in catalog.  Delete not valid
   at Microsoft.Help.Index.Catalog.ProcessModification_Delete(CatalogModificationEntry catalogModificationEntry)
   at Microsoft.Help.Index.Catalog.Modify(String contentPath, String contentWorkPath, String vendorPath, CatalogModificationEntry[] modificationList)
   at Microsoft.Help.Index.Indexer.ModifyCatalogs(CatalogUpdateRequest[] catalogUpdateRequestList, String queryManifestFilePath)
   at Microsoft.Help.CacheLib.IndexMerger.Generate(CatalogUpdateRequest[] requests)
   at Microsoft.Help.CacheLib.DocumentationCache.MergeCatalogs(ChangeDescription change, StatusCallback`1 statusCallback)
   at Microsoft.Help.CacheLib.DocumentationCache.IntegrateChange(VendorName vendorName, ChangeDescription change, StatusCallback`1 statusCallback, CertificateCheckCallback certCheckCallback)
   at Microsoft.Help.CacheLib.DocumentationCache.Update(VendorName vendorName, Boolean checkForOnlineUpdates, StatusCallback`1 statusCallback, CertificateCheckCallback certCheckCallback)
   at Microsoft.Help.CacheLib.DocumentationCache.Prune(VendorName vendorName, StatusCallback`1 statusCallback)
   at Microsoft.Help.CacheLib.CacheManager.<>c__DisplayClass17.<PruneAsync>b__16()
   at Microsoft.Help.CacheLib.AsyncOperationRunner.Run(Object state..


So seems that half the system knows about this renegade catalog and half it does not.

----

Wiped store. reboot. Start again.Install my test help. Corruption.

Wiped store. reboot. Start again.Install my test help. Corruption.

Wiped store. reboot. Start again.Install my test help. Corruption.

Mmm. See a pattern here. The penny drops. By test package is corrupted. I had accidently corrupted my test .mshc file and added a .chm file into the .mshc. And it just broke Help Viewer.

Resolution

I finally found that there is a bug with MS Help Viewer 1.0. If you add an empty help package then you end up in this broken state.

For me.. I had accidentally zipped (.mshc)  a folder with topics that contained no help Ids (no H3  meta tags).

So I reset the library store and stopped adding this corrupted help file and all was OK.

For debugging and instructions on reseting your help please see 

ċ
RobsBadHelpBook.zip
(56k)
Robert Chandler,
Mar 5, 2010, 6:47 AM
Comments