CHM компилируется нормально, но не открывается
Я использую программу, которая выплевывает проекты HTML и hhp, содержащие данные из моих баз данных. Затем я компилирую этот hhp с помощью компилятора справки Microsoft HTML (hhc.exe).
Это работает хорошо, но, к сожалению, для немногих проектов, hhc компилируется нормально, но файл chm непригоден для использования. Он сообщает: "Не удается открыть файл: mk:@MSITStore: FileName"
У меня нет проблем с другими файлами CHM в моей системе. У меня нет проблем с другими чм я компилирую. Если я удалю несколько тем из моего проекта, созданный файл снова будет работать. Неважно, какие темы я удаляю. Файлы, которые не работают, почти в два раза больше, чем файлы, которые работают, даже если html и файл проекта почти одинаковы (очень мало изменений), что заставляет меня думать, что сжатие завершается неудачно, если размер или структура какого-либо файла не существует. Т верно.
У кого-нибудь есть такой опыт, и в чем может быть причина? Для тех, кто хочет увидеть пример, этот проект будет компилироваться и работать нормально:
А этот компилируется, но не открывается:
4 ответа
Я испытал ту же проблему. CHM был в два раза больше обычного размера и не мог быть открыт. Компилятор CHM не сообщил об ошибке. Удаление любого случайного HTML-файла позволило открыть CHM. В тот же день я произвел много других МП, и все остальные были в порядке.
Я работал над этой проблемой следующим образом:
- Я добавил очень маленький HTML-файл в проект. Это копия одного из других файлов в проекте, поэтому, если пользователь обнаружит его в поиске, это не повредит.
- Я ввел имя файла в HHP.
- Я перекомпилировал проект в компиляторе CHM.
CHM сжался до нормального размера, и он открывается нормально.
У меня была точно такая же проблема, и я могу сказать, что все зависит от размера и, скорее всего, ошибка в модуле сжатия hhc.
Когда я добавил несколько строк документации, размер CHM-файла увеличился с 1,6 до 3,1 МБ, и он больше не мог быть открыт.
Эта проблема может быть решена не только путем удаления файлов, но и путем добавления файлов.
Поэтому я написал дополнительную документацию, добавил ее в проект, и все снова было хорошо.
Я вижу 0 байтовых файлов на входе? Может быть, компилятор не может справиться с этим?
Есть несколько причин, по которым может произойти сбой компилятора MS HH.
(1) Неверные имена файлов, файл и файл Компилятору справки HTML не нравятся некоторые имена файлов, например пробелы в имени файла могут по-прежнему вызывать некоторые незначительные проблемы с помощью справки HTML. Лучше всего заменить пробелы подчеркиванием. Избегайте "#" в именах файлов и папок. Попробуйте придерживаться этих символов _, a..z, A..Z, 0..9.
Не используйте периоды отдельно от обычного расширения файла. Пример: имя файла, такое как xxx.h001.gif, неправильно определено как файл HTML. Затем компилятор пытается проанализировать двоичный файл и вылетает. Не используйте имена файлов или папок, содержащие ".chm".
(2) Избегайте компиляции на сетевом диске и попробуйте скомпилировать на локальном диске.
(3) Используйте диагностику справки MJ, чтобы убедиться, что все компоненты средства просмотра справки правильно установлены и зарегистрированы.
http://helpware.net/downloads/
(4) Удалите файл "hh.dat", который вы должны найти в этом подкаталоге:
\ Documents and Settings \% username% \ Application Data \ Microsoft \ HTML Help
Этот файл хранит информацию обо всех файлах справки HTML в вашей системе (избранное, размер и положение окна и т. Д.) И может привести к неправильной работе файлов, если они каким-либо образом были повреждены.
(5) Вам необходимо отладить свою справочную систему. Вам необходимо определить файлы, которые вызывают сбой компилятора.
Обычно я удаляю разделы сети, переименовывая или перемещая папки и файлы, а затем перекомпилирую. Продолжайте добавлять и удалять разделы, пока компилятор не выйдет из строя. В конце концов вы найдете один или два файла, которые вызывают проблему. Вам также может понадобиться отладить эти файлы, временно удалив разделы HTML-файла.