使用Tlbimp.exe 把vb6的com dll轉成com Interop

摘要:使用Tlbimp.exe 把vb6的com dll轉成com Interop

目前專案的 .net 程式因客戶端規範需要放上TFS build,我使用TFS online作build測試;但遇到一個問題,因為有使用vb6的com元件,需要在機器註冊後,才能順利work,自然在TFS 上是build不過的。錯誤訊息表示,找不到com元件類別...

為了解決這個問題,使用Tlbimp.exe 把vb6的com dll轉成com Interop 產生了一個只有7K的中繼檔dll,然後調整程式把中繼檔dll加到原本 .net程式裡,取代原本的com dll參考(把原本的參考改為中繼檔),原本的com dll先保留。

到這裡作TFS的build就可以成功了。但是實際上run 程式的時候,還是會看到 com未註冊的錯誤。觀察了一下產生的中繼檔和原本com dll的大小,原本com有288kb,產生的中繼檔只有7kb。嗯~ 我想中繼檔只是指向reference,原本的com還是要註冊。試了一下果然將原本的com註冊之後,程式就可以正常work了。

參考網址
http://msdn.microsoft.com/zh-tw/library/tt0cf3sx(v=vs.110).aspx 
http://msdn.microsoft.com/zh-tw/library/bd9cdfyx(v=vs.100).aspx 
http://msdn.microsoft.com/zh-tw/library/ms229859(v=vs.110).aspx