共用方式為


組件繫結記錄檔檢視器 (Fuslogvw.exe)

使用當地語系化資源時有許多困難點,其中之一就是偵錯資源載入處理序。使用 ResourceManager 時,資源要求會交給 Common Language Runtime,它負責尋找、載入及繫結資源。原始程式碼中的資源載入單一呼叫,可能會對 Common Language Runtime 執行許多繫結要求。

組件繫結記錄檔檢視工具可以協助分析資源載入處理序。實際上 Windows 的 WinInet 元件,會為每個 URL 維護詳細的資源繫結資訊。但是,WinInet 不一定會按照時間順序傳回這些項目。

就預設值而言,系統不記錄繫結呼叫。若要開啟記錄,就必須在 Windows 登錄的 HKLM\Software\Microsoft\Fusion 機碼下,建立 DWORD 值。第一層記錄,只顯示失敗的資源繫結。若要啟用,您必須建立 LogResourceBinds DWORD 值,並且設定預設值零以外的其他值。

您只要刪除或重新命名適當的資源附屬組件,就會在相同的應用程式中造成資源繫結失敗。例如,刪除 \en-US\Graphic.resources.dll 和 \en\Graphic.resources.dll,並且執行 Graphic 範例後,FusLogVW 會產生下圖中的記錄檔:

這二個記錄檔項目首先指出 Common Language Runtime 試圖尋找 en-US 文化特性資源。但它無法載入 en 文化特性的資源。最後,它無法從主要組件載入資源 (雖然成功,但卻沒有記錄)。

不過,許多開發人員希望看到所有的繫結活動。此時,就必須將 ForceLogDWORD 值,設定為預設值零以外的其他值。如此一來,後續的繫結呼叫無論成功和否,都會記錄。請參閱下圖中的一般記錄檔:

您只要選取其中一個資源繫結 (這裡的 Locale=en-US),再按一下 [View Log],就會開啟瀏覽器視窗,並且產生下圖中的詳細記錄檔。

這個特殊記錄檔項目顯示出 Common Language Runtime 搜尋全域組件快取 (GAC) 和應用程式子目錄之後,已經順利載入資源。若要減少 Common Language Runtime 試圖載入的檔案數目以及提高效能,Common Language Runtime 只在副檔名為 .dllL 的檔案中尋找資源。