2

我使用的程序可以从我的数据库中生成包含数据的 HTML 和 hhp 项目。然后,我使用 Microsoft HTML Help Compiler (hhc.exe) 编译该 hhp。

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

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

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

工作 chm 项目

而这个编译但无法打开:

失败的 Chm

4

4 回答 4

3

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

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

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

CHM 缩小到正常大小,正常打开。

于 2015-07-08T21:38:16.427 回答
1

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

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

这个问题不仅可以通过删除文件来解决,也可以通过添加文件来解决。

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

于 2013-10-18T12:15:16.550 回答
0

我在输入中看到 0 字节文件?也许编译器无法处理?

于 2013-02-04T16:34:04.633 回答
0

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

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

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

(2) 避免在网络驱动器上编译,尽量在本地驱动器上编译。

(3) 使用 MJ 的 Help Diagnostics 确保所有帮助查看器组件均已正确安装和注册。

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

(4) 删除文件“hh.dat”,您应该在此子目录中找到该文件:

\Documents and Settings\%username%\Application Data\Microsoft\HTML 帮助

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

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

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

于 2013-02-03T16:49:33.140 回答