2009-11-08 171 views
2

我目前正在將舊的VBA應用程序移植到.Net應用程序。在此過程中,現有VBA應用程序的用戶需要添加一些功能。因此,我沒有在VBA &中編寫代碼,後來在C#中編寫它們,而是使用C#編寫了新功能,並且希望通過COM將它公開到現有的VBA應用程序中,並且將它保留在當前的.Net應用程序版本中。C#COM互操作庫

該解決方案包含多個項目,1個UI項目,1個業務邏輯項目,1個數據訪問層項目。

新功能只是一些修改數據的新形式。理想情況下,他們將點擊一個表單命令按鈕,通過COM互操作將這些C#表單午餐。

我應該如何去通過COM Interop公開這個表單。 我希望做的只是添加另一個項目,MyProject.COM,它將包含我的接口ICOMManager,暴露方法來訪問啓動所需的形式。我的COMManager類將在我的.net應用程序中實例化所需的表單並顯示它們。 該項目MyProject.COM將具有對業務邏輯層的UI層&的引用。

當我想使用REGASM註冊該項目時,我將如何包含對這些其他項目的引用?

感謝您的任何幫助或建議如何做到這一點。

回答

2

好吧,所以我看到這比我想象的要容易得多。

一旦我看了regasm生成的reg文件,我可以看到tlb(類型庫)只是一個指向它可以找到庫來執行.Net組件的位置的指針。

因此,一旦我註冊了tlb並確保其指向安裝目錄中其餘項目文件所在的位置,它就可以工作。