CHM编译好,但不会打开

时间:2013-01-31 19:45:47

标签: chm html-help-workshop

我使用的程序会扫出包含数据库中数据的HTML和hhp项目。 然后我使用Microsoft HTML帮助编译器(hhc.exe)编译该hhp。

它运行良好,但不幸的是,对于很少的项目,hhc编译很好,但chm文件无法使用。 它报告“无法打开文件:mk:@MSITStore:FileName”

我的系统上的其他chm文件没问题。我编译的其他chm没问题。如果我从我的项目中删除了几个主题,生成的文件再次起作我删除的主题无关紧要。不起作用的文件几乎是工作文件大小的两倍,即使html和项目文件几乎相同(很少更改),这导致我认为如果某个文件的大小或结构不是静默的,压缩会失败。对。

有没有人有这样的经历,可能是什么原因? 对于那些想要查看示例的人来说,这个项目将编译并正常工作:

Working chm project

这个编译但无法打开:

Chm that fails

4 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。 CHM是通常尺寸的两倍,无法打开。 CHM编译器未报告任何错误。删除任何启用CHM的随机HTML文件。我在同一天生成了许多其他的CHM,其他所有的都很好。

我通过以下方式解决了这个问题:

  1. 我在项目中添加了一个非常小的HTML文件。它是项目中其中一个文件的副本,因此如果用户在搜索中找到它,则不会造成任何伤害。
  2. 我在HHP中输入了文件名。
  3. 我在CHM编译器中重新编译了该项目。
  4. CHM缩小到正常大小,并且正常打开。

答案 1 :(得分:1)

我遇到了完全相同的问题,可以说这只是一个大小问题,很可能是hhc压缩模块中的错误

当我添加一些文档时,CHM文件的大小从1.6增加到3.1 MB,无法再打开。

此问题不仅可以通过删除文件来修复,还可以通过添加文件来解决。

所以我写了一些额外的文档,将它添加到项目中,一切都很好。

答案 2 :(得分:0)

MS HH编译器崩溃的原因有很多。

(1)无效的文件名文件和文件 HTML帮助编译器不喜欢某些文件名,例如文件名中的空格仍然可能会导致HTML帮助出现一些小问题。最好用下划线替换空格。避免使用文件和文件夹名称中的“#”。 尝试并坚持使用这些字符_,a..z,A..Z,0..9。

请勿在正常文件扩展名中使用句点。示例:诸如xxx.h001.gif之类的文件名被错误地标识为HTML文件。然后编译器尝试解析二进制文件并崩溃。 不要使用包含“.chm”的文件或文件夹名称。

(2)避免编译网络驱动器并尝试在本地驱动器上编译。

(3)使用MJ的帮助诊断程序确保正确安装和注册所有帮助查看器组件。

http://helpware.net/downloads/#MJs

(4)删除你应该在这个子目录中找到的文件“hh.dat”:

\ Documents and Settings \%username%\ Application Data \ Microsoft \ HTML Help

此文件存储有关系统上所有HTML帮助文件的信息(收藏夹,窗口大小和位置等),如果文件以某种方式损坏,可能会导致文件出现异常。

(5)您需要调试帮助系统。您需要识别导致编译器崩溃的文件。

我通常会通过重命名或移动文件夹和文件来删除网页的各个部分,然后重新编译。继续添加和删除部分,直到编译器不崩溃。最终,您将找到导致问题的一个或两个文件。您可能还需要通过临时删除HTML文件的各个部分来调试这些文件。

答案 3 :(得分:0)

我在输入中看到0字节文件?也许编译器无法处理它?<​​/ p>