2012-02-19 44 views
0

我創建了一個C#DLL VS 2010與所有的COM + attributes.i造成一種強烈的重點,並 this strong key to Application properties and register it to the assembly: sn -k ComPlusClass.snk無法調用COM +從VB6代碼

Use VS tool to register the assembly as: regasm ComPlusExample.DLL

Create a Type Library using the tool: ` tlbexp ComPlusExample.DLL

Register it in COM+ as: regsvcs ComPlusExample.DLL 後來我在vb6中創建了一個應用程序,並在refrences.s.Everthing中添加生成的.tlb。我可以從vb6調用c#dll。但是我需要將這些代碼提供給我的客戶端,並且不可能在那裏運行所有這些步驟。 因此,對於這個我創建的exe通過右鍵單擊我的應用程序在COM + .i安裝此exe文件在我的客戶system.but當我添加從progmramfiles tlb參考它顯示module can't be found .plz幫助我在這方面的錯誤。是創建exe是將我的com +從一個系統導出到另一個系統的正確方法。

回答

0

您的應用程序依賴於.NET Framework,因此必須在要部署的客戶端計算機上運行「regsvcs」命令。如果您只是導出庫並導入到COM +中,我不相信將必要的CCW(COM可調用包裝器)條目添加到Windows註冊表中。

因此,我會推薦創建一個批處理文件,用你需要的參數運行「regsvcs」命令。您不需要在客戶端上生成TLB文件,因爲它僅在開發時使用。

當然你也可以創建一個項目安裝程序來爲你做這件事,但如果你正在尋找一個快速解決方案,批處理文件將做到這一點。