CHM 编译正常,但打不开

问题描述 投票:0回答:4

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

它工作得很好,但不幸的是,对于少数项目,hhc 编译得很好,但 chm 文件无法使用。 它报告“无法打开文件:mk:@MSITStoreu200e:文件名”

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

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

工作 chm 项目

这个可以编译但无法打开:

Chm 失败了

chm html-help-workshop
4个回答
3
投票

我遇到了同样的问题。 CHM 比平常大一倍,无法打开。 CHM编译器没有报告任何错误。删除任何随机 HTML 文件即可打开 CHM。我同一天生成了很多其他的CHM,其他的都OK。

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

  1. 我在项目中添加了一个非常小的 HTML 文件。它是项目中其他文件之一的副本,因此如果用户在搜索中找到它,也没有什么害处。
  2. 我在 HHP 中输入了文件名。
  3. 我在CHM编译器中重新编译了该项目。

CHM缩小至正常大小,并正常打开。


1
投票

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

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

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

所以我编写了一些额外的文档,将其添加到项目中,一切又恢复正常了。


0
投票

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


0
投票

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

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

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

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

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

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

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.