TlbImp源碼在CodePlex公開!歡迎下載

對.NET中COM Interop比較熟悉的朋友應該都對TlbImp比較瞭解了。這個工具是專門用來將Type Library(類型庫)轉換成對應的Interop Assembly,以便在.NET程序中使用對應的COM組件。這個Interop Assembly中主要包含RCW(Runtime Callable Wrapper)的Metadata(而非源代碼。RCW的實現其實是在CLR內部),以及部分事件處理代碼(如EventProvider),是.NET/COM Interop中不可或缺的一部分。

爲了方便大家能夠及時使用到最新版本的TlbImp(而不用等到下一個Visual Studio版本),參考TlbImp的實現,理解TlbImp的工作原理,以及添加新的功能,我們決定將最新版本的TlbImp在CodePlex上發佈,並公開源代碼。主頁於今天早上上線:

http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=17579

這個版本主要由CLR Interop上海團隊開發,完全使用託管代碼(C#)編寫,並相比之前的功能有以下增強:

1. 我們重新設計了TlbImp的錯誤信息顯示,使其更加清楚明白,增加了一些新的錯誤信息。並且每條錯誤信息現在都有了自己的單獨編號(如TI1033),以便在MSDN中查閱。由於相關的文檔工作暫時還沒有跟上,在不久的將來我們會把這部分內容加到MSDN上。

2. 在/verbose功能打開的時候,TlbImp可以針對命令行上指定的Type Library,自動在註冊表和當前目錄下查找該Type Library 所引用的其他Type Library,並提示找到的Type Library的所在位置。如果無法找到,則提示錯誤信息,並告知無法找到的Type Library的具體信息,如GUID,文件名,版本號等。生成結果則不受影響。這個信息可以給開發人員提示,避免因爲找不到引用的Type Library而導致生成的Interop Assembly信息不全而產生的各種問題。

因爲進度方面原因,暫時我們沒有加入更多的新功能。在之後的幾個月內,我們Team的一部份工作重心是爲TlbImp加上客戶所要求的新功能(另外一部分工作重心,自然是下一版本CLR相關的新功能啦。大家應該在下個版本VS的Beta版中應該可以看到),並提供強大的自定義功能。

如果對TlbImp有使用上的問題,請在本Blog或者在CodePlex主頁上留言,我們將儘可能予以解答。如果大家對TlbImp有相關的建議,歡迎在本Blog或者CodePlex主頁上跟我們分享一下你的想法,也許你的建議就會出現在下個版本的TlbImp中也說不定哦。

發佈了119 篇原創文章 · 獲贊 3 · 訪問量 78萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章