MicrosoftのHTMLヘルプワークショップ、特にhhc.exeを使用して、HTML形式のドキュメントを含むCHMファイルをアセンブルしています。公式にはCHMファイルのサイズに制限はありませんが、ドキュメントセットのサイズが大きくなるにつれて、ビルドの失敗がますます増えています。エラーメッセージはあまり良くありませんが、メモリが不足しているようです。ただし、メモリを増やしても違いはありません。 (ここ数週間で、ドキュメントセットのサイズが約25%増加しました。メモリを2倍にしてみました。)
CHMファイルは12MBですが、大きくはないようです。これを調整できますか、それとも、少なくとも32ビットマシンで、このツールが処理できるものの非公式な制限に達しましたか?
追加するために編集:
表示されるエラーは、次のテキストを含むポップアップです。
hhc.exe-アプリケーションエラー [X]「0x453217d8」の命令は「0x ########」のメモリを参照していました。 メモリを「読み取る」ことができませんでした。 [OK]をクリックしてプログラムを終了します。 [キャンセル]をクリックしてプログラムをデバッグします。 [OK] [キャンセル]
これは、<exec>を使用してhhc.exeを呼び出すAntターゲットを呼び出す自動ビルドから実行します。ビルドマシンはWindowsServer 2003を実行しており、4GBのメモリを搭載しています。
メタ質問:ファイルサイズに関する私の最初の質問に回答しました。コメントから生じたこのフォローアップをどうすればよいですか?質問を再キャストしますか?元の質問への回答を受け入れますか?あなたが私の担当者から見ることができるように、私はここで新しいです。
HTML Help WorkshopでCHMをコンパイルできないという同様の問題が発生し、CHMも約12MBでした。それはエラーメッセージを提供していました:
HTML Help Workshop: hhw.exe - Fatal Application Exit [X]
There is not enough memory available for this task. Quit one or more programs to increase available memory, and then try again.
[OK]
ビルドプロセスのログ出力を確認していたところ、インデックスファイルに1つのキーワードに割り当てられたトピックが多すぎることがわかりました。
この場合、特定のキーワードに7132トピックが関連付けられているとビルドは機能していましたが、同じキーワードに7140トピックが割り当てられているとビルドが失敗していました。
インデックスからキーワードを削除したところ、CHMは正常にコンパイルされました。これは、次のように見えることを意味しますキーワードに関連付けることができるトピックの数には制限があります-この制限が何であるかについての参照はドキュメントに見つかりませんでしたが、多分私の経験は他の人を助けることができます。
特定のキーワードに1000を超えるトピックを割り当てると、とにかくインデックスのポイントが無効になり始めるので、お勧めできません。
マシンの「ビットネス」は、このプロセスとは何の関係もありません。ビットネスとは、プロセッサがアドレス指定できるメモリの量を指します。 32ビットマシンは、これに必要な数をはるかに超える4GBのメモリをアドレス指定できます。さらに、さらに必要な場合でも、マシンは単にメモリをページングします。これはプロセスを遅くしますが、動作を妨げることはありません。
MicrosoftのHTMLHelp Workshopをダウンロードしてインストールしたところ、25MBのものを含む15MB以上のCHMファイルを逆コンパイルして再コンパイルすることができました。問題は、問題を引き起こしているマシン上の何か、おそらくウイルススキャナーである可能性があります。コンパイルする前に、ウイルススキャナーを無効にしてみてください。別のマシンでCHMをコンパイルしてみましたか?そして、なぜあなたは考えるあなたはメモリを使い果たしているのですか?
エラーのパターンに一貫性がないため、破損したソフトウェアのインストールを除外しましたか?
新規インストールでコードをテストします。