TIPS-解決SandCastle File Helper Builder的Unresolved assembly reference錯誤

好用的Help檔產生器--NDoc的作者Kevin Downs在2006年7月宣告不再投入NDoc Open Source Project的開發,NDoc中止在1.3版,還來不及加上對2.0版Assembly的支援。讓Kevin決定退出的理由之一是微軟推出了SandCastle(沙雕城堡?)。

SandCastle目前最新的版本是Dec 2006 CTP,不像NDoc是個具有完整介面的GUI工具,主要為兩隻命令列工具程式(MrefBuilder & Build Assembler),要建立CHM檔得透過一連串的Command Line操作,對用慣NDoc的人來說挺不人性化的,所幸開發社群已有人寫出整合SandCastle的GUI介面,例如: SandCastleGUISandCastle Help File Builder(跟NDoc的操作介面相似)。

不過試作了一顆現有.NET 2.0自訂元件的Help檔,卻出師不利。由於元件額外參考了System.Configuration.dll,SandCastle Help File Builder(SHFB)會出現:
Error: Unresolved assembly reference: System.Configuration (System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) required by YourAsmName 的錯誤。Goggle了一下,原來這是SandCastle CTP的一個大Bug--無法Reference GAC中的DLL檔(見FAQDoes Sandcastle resolve reference to GAC DLLs?);改用SandCastleGUI倒可以順利Build出CHM,只是中文會變亂碼的老問題又冒出來了(之前NDoc我也是改了Source才能正常處理中文),SandCastleGUI沒提供Source Code,沒法動手,所以我又回頭試著解決SHFB的問題。

追了一小段Code之後,我發現其實只要修改Program Files\EWSoftware\Sandcastle Help File Builder\Templates\GenerateRefInfo.bat,加入以下的紅字,連Code都不用改,問題就可以解決囉!

@ECHO OFF
REM Step 1 - Generate the reflection information
"{@SandcastlePath}ProductionTools\MRefBuilder" /config:MRefBuilder.config /out:reflection.org
/dep:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\*.dll {@Dependencies} {@DocInternals} *.dll *.exe

歡迎推文分享:
Published 17 January 2007 10:41 PM 由 Jeffrey
Filed under:
Views: 6,562



意見

沒有意見

你的看法呢?

(必要的) 
(必要的) 
(選擇性的)
(必要的) 
(提醒: 因快取機制,您的留言幾分鐘後才會顯示在網站,請耐心稍候)

5 + 3 =

搜尋

Go

<January 2007>
SunMonTueWedThuFriSat
31123456
78910111213
14151617181920
21222324252627
28293031123
45678910
 
RSS
創用 CC 授權條款
【廣告】
twMVC

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication