2013-01-31 52 views
2

我使用了一個程序,它將吐出包含來自我的數據庫的數據的HTML和hhp項目。 然後,我使用Microsoft HTML幫助編譯器(hhc.exe)編譯該hhp。CHM編譯正常,但不會打開

它運行良好,但不幸的是,對於少數項目,hhc編譯得很好,但chm文件不可用。 它報告「無法打開文件:mk:@ MSITStore:FileName」

我對我的系統上的其他chm文件沒有問題。我沒有問題,我編譯其他CHM。如果我從我的項目生成的文件再次刪除幾個主題。這與我刪除的主題無關。不工作的文件幾乎是工作文件大小的兩倍,即使html和項目文件幾乎相同(只有很少的更改),這導致我認爲,如果某個文件的大小或結構不正確,壓縮就會失敗,沒錯。

有沒有人有這樣的經驗,可能是什麼原因? 對於那些希望看到的例子,該項目將編譯和精細工作:

Working chm project

而這一次編譯,但無法打開:

Chm that fails

回答

0

有許多的原因爲什麼MS HH編譯器可能會崩潰。

(1)無效的文件名文件和文件 HTML幫助編譯器不喜歡某些文件名例如文件名中的空格仍然會導致HTML幫助的一些小問題。最好用下劃線替換空格。避免在文件和文件夾名稱中使用「#」。 嘗試並堅持使用這些字符_,a..z,A..Z,0..9。

不要在正常的文件擴展名中使用分隔符。例如:xxx.h001.gif等文件名被錯誤地標識爲HTML文件。編譯器然後嘗試解析二進制文件並崩潰。 請勿使用包含「.chm」的文件或文件夾名稱。 (2)避免在網絡驅動器上編譯並嘗試在本地驅動器上編譯。 (3)使用MJ's Help Diagnostics確保所有幫助查看器組件都正確安裝並註冊。

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

(4)刪除文件「hh.dat」,你應該在這個子目錄中發現:

\的Documents and Settings \%USERNAME%\應用數據\微軟\ HTML幫助

此文件存儲有關係統上所有HTML幫助文件(收藏夾,窗口大小和位置等)的信息,並且如果文件以某種方式損壞,可能會導致文件行爲不正常。

(5)您需要調試您的幫助系統。您需要識別正在崩潰編譯器的文件。

我通常通過重命名或移動文件夾和文件,然後重新編譯刪除網絡的部分。繼續添加和刪除部分,直到編譯器不會崩潰。最終你會發現一個或兩個導致問題的文件。您可能還需要通過暫時刪除部分HTML文件來調試這些文件。

+0

謝謝。不幸的是,編譯器不會崩潰,它會產生chm輸出,但輸出不可讀。刪除隨機文件有助於,但不是任何特定的文件只是任何文件,減少隨機文件的大小也將工作。 – user1612992

0

我在輸入中看到0個字節的文件?也許編譯器不能處理?

1

我有完全相同的問題,可以說這都是大小問題,很可能是hdc的壓縮模塊中的一個錯誤。

當我添加了一些文檔時,CHM文件的大小從1.6增加到3.1 MB,並且無法再打開。

此問題不僅可以通過刪除文件,也可以通過添加文件來解決。

所以我寫了一些額外的文檔,將其添加到項目中,一切都很好。

+0

公共文檔? –

+0

@NewAlexandria:添加了「\ page」的文本文件。 –

2

我遇到了同樣的問題。 CHM是平常尺寸的兩倍,無法打開。 CHM編譯器沒有報告任何錯誤。刪除任何啓用打開CHM的隨機HTML文件。我在同一天生成了許多其他CHM,其他所有人都沒問題。

我工作圍繞這一問題通過以下方式:

  1. 我增加了一個非常小的HTML文件到項目中。它是項目中其他文件的副本,因此如果用戶在搜索中找到它,它不會造成任何損害。
  2. 我在HHP中輸入了文件名。
  3. 我在CHM編譯器中重新編譯了項目。

CHM縮小到正常尺寸,並正常打開。

+0

我在另一家公司的同事創建的另一個CHM中遇到了同樣的錯誤。內容與第一個CHM完全無關。診斷和解決方法是一樣的。 解決方法的一個更好的版本是在項目結束時添加一個完全空白的HTML文件。 –

相關問題