2012-05-27 60 views
2

我們支持一個老化的VB6系統,我們在.Net中編寫了新代碼,將代碼放入程序集,然後導出* .tlb文件用於VB6代碼庫。我可以在不使用Regasm的情況下使用* .tlb文件在計算機上註冊

我的問題是,在我希望運行代碼的每臺計算機上,是否必須使用Regasm來註冊類型庫?

我問,因爲很難跟蹤類型庫安裝,因爲計算機中斷,新計算機被添加等。另外,如果我們更新.Net代碼,我們需要繞過每臺計算機並重新註冊類型圖書館。

總之,是否可以從VB6運行.Net代碼,而無需在代碼運行的每臺計算機上註冊類型庫?

三江源

回答

6

Regasm.exe僅創建當你與/tlb:filename.tlb命令行選項運行類型庫。然後在Project + References中使用VB6項目,瀏覽按鈕選擇.tlb文件。運行Tlbexp.exe是另一種獲取它的方式,減去註冊。而你應該更喜歡的是IDE中的「Register for COM interop」選項。但是,您必須運行VS,以便可以編寫註冊表。右鍵單擊該快捷方式並選擇「以管理員身份運行」。

讓它出現在VB6列表中是一個小方便,但很難得到。由Regasm.exe調用的標準.NET註冊代碼不會寫入所需的「可編程」鍵以使VB6自動將組件添加到其列表中。您必須編寫由[ComRegisterFunction]屬性裝飾的自定義註冊函數,該函數寫入缺少的密鑰。當您只需點擊瀏覽就不值得。

另外請注意,你做不是必須在用戶的機器上註冊類型庫。它僅在VB6編譯器中需要。您必須註冊[ComVisible]類,使用安裝項目很容易。只需將DLL的Register屬性設置爲vsdrpCOM即可。

相關問題