2

データベースからのデータを含むHTMLおよびhhpプロジェクトを吐き出すプログラムを使用しています。次に、そのhhpをMicrosoft HTMLヘルプコンパイラ(hhc.exe)でコンパイルします。

それはうまく機能しますが、残念ながらいくつかのプロジェクトでは、hhcは正常にコンパイルされますが、chmファイルは使用できません。「ファイルを開けません:mk:@MSITStore:FileName」と報告されます

システム上の他のchmファイルに問題はありません。コンパイルした他のchmに問題はありません。プロジェクトからいくつかのトピックを削除すると、作成されたファイルは再び機能します。どのトピックを削除してもかまいません。動作しないファイルは、動作するファイルのほぼ2倍のサイズですが、htmlファイルとプロジェクトファイルはほぼ同じです(変更はほとんどありません)。そのため、ファイルのサイズや構造が正しくない場合、圧縮はサイレントに失敗すると思います。右。

誰かがこのような経験を持っていますか、そしてその理由は何でしょうか?例を見たい人のために、このプロジェクトはコンパイルされ、正常に動作します:

作業中のchmプロジェクト

そして、これはコンパイルされますが、開くことができません:

失敗するChm

4

4 に答える 4

3

私は同じ問題を経験しました。CHM は通常の 2 倍の大きさで、開くことができませんでした。CHM コンパイラはエラーを報告しませんでした。ランダムな HTML ファイルを削除すると、CHM を開くことができます。同じ日に他の多くの CHM を生成しましたが、他のすべては問題ありませんでした。

次の方法で問題を回避しました。

  1. プロジェクトに非常に小さな HTML ファイルを追加しました。これはプロジェクト内の他のファイルの 1 つのコピーであるため、ユーザーが検索で見つけたとしても害はありません。
  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 のヘルプ診断を使用して、すべてのヘルプ ビューア コンポーネントが正しくインストールおよび登録されていることを確認します。

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

(4) 次のサブディレクトリにあるファイル「hh.dat」を削除します。

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

このファイルには、システム上のすべての HTML ヘルプ ファイルに関する情報 (お気に入り、ウィンドウのサイズと位置など) が保存されており、何らかの理由でファイルが破損している場合、ファイルが誤動作する可能性があります。

(5) ヘルプ システムをデバッグする必要があります。コンパイラをクラッシュさせているファイルを特定する必要があります。

私は通常、フォルダーとファイルの名前を変更または移動して Web のセクションを削除してから、再コンパイルします。コンパイラがクラッシュしなくなるまで、セクションの追加と削除を続けます。最終的に、問題の原因となっている 1 つまたは 2 つのファイルが見つかります。HTML ファイルのセクションを一時的に削除して、これらのファイルをデバッグする必要がある場合もあります。

于 2013-02-03T16:49:33.140 に答える