我有一個.Net COM可見的dll和一個VB6 dll。我在GAC上註冊了.NET dll並註冊了VB6 dll。我的問題是,VB6 dll可以引用GAC中的.Net dll。如果是,那怎麼辦?通常我會使用.net dll上的regasm
,一切都會好的,但現在.Net dll在GAC中,所以我不認爲這種方法是可行的。可以vb6 dll使用.net com可見dll是gac
0
A
回答
1
有沒有什麼特別之處,將來自如果你使用的GAC工作停止這個或嘗試從VB6 DLL使用項目。如果要編寫早期綁定代碼(實際類型名稱,自動完成工作),那麼VB6 IDE需要一個類型庫。它們通常嵌入在DLL內部,但.NET [ComVisible]程序集不是這種情況。
使用Tlbexp.exe或Regasm.exe的/ tlb命令行選項創建一個類型庫。像:
regasm foo.dll /tlb:foo.tlb
現在,您可以在您的VB6項目中使用的類型庫。在VB6 IDE中,使用「項目+引用」,單擊「瀏覽」並導航到foo.tlb文件。
另請注意,雖然GAC是避免DLL Hell的好方法,但您通常不會在開發計算機上使用它,因爲它會污染計算機的GAC。使用Regasm/codebase選項將它註冊到存儲DLL的目錄中,然後不需要GAC。當你這樣做時,你會從Regasm那裏得到一個警告,試圖提醒你,你冒着DLL冒險的危險。但這對您的用戶來說是一個問題,而不是爲了您。所以你可以放心地忽略這個警告。
0
這是可能的,但該方法取決於您如何部署您的.Net DLL。
如果通過腳本做到這一點,你可以這樣做:
- 您的DLL複製到文件夾,例如c:\ Program Files文件\ myProduct的\ MYDLL.DLL
- 使用regasm註冊你的DLL文件COM互操作
- 使用GACUTIL擺在進入GAC
如果你使用Visual Studio安裝項目: 1.添加全球Assemly緩存特殊的文件夾項目 2.設置dll的目標文件夾爲GAC 3.將Register屬性設置爲vsdraCOM
如果您無法從VB6添加對.Net DLL的引用,請從.Net創建一個.tlb文件DLL使用tlbexp並添加對類型庫的引用。
這是該過程的更詳細的說明的鏈接:http://www.simple-talk.com/dotnet/visual-studio/build-and-deploy-a-.net-com-assembly/
相關問題
- 1. .NET COM可見DLL與Active X DLL
- 2. 從VB6通過COM調用.NET方法可見DLL
- 3. VB6項目可以使用.Net .dll
- 4. 在構建過程中構建COM可見.NET DLL和非COM可見DLL?
- 5. csharp com可見DLL理解
- 6. 使.net dll com可見是否有缺點?
- 7. 如何在vb6庫項目中引用com可見C#dll
- 8. COM DLL在VB6中?
- 9. 是否可以同時調試VB6和C++ COM DLL?
- 10. 如何集中一個VB6引用的.net dll(com interop)dll
- 11. 在vb6中使用.net dll
- 12. COM可見DLL作爲ActiveX對象
- 13. 在COM可見DLL中顯示窗體
- 14. CreateObject對Com可見的DLL失敗
- 15. 無法註冊.NET COM DLL
- 16. 用WiX在GAC中註冊COM DLL
- 17. 是否可以使用COM可見類型構建.NET DLL,而不需要VS需要提升?
- 18. 使.NET DLL對COM可見的最簡單的方法是什麼?
- 19. 安裝.NET 4.0 dll到GAC
- 20. 使用VB6 COM DLL作爲外殼或接口與.NET代碼
- 21. COM類的可見性:C#到VB6
- 22. C#COM可見.Net程序集與傳統C++ COM DLL的結構
- 23. 如何使用IKVM com創建的.dll可見?
- 24. 在哪裏可以找到COM DLL?
- 25. 可以NuGet分發COM DLL嗎?
- 26. 追蹤GAC註冊的COM + C#dll
- 27. c#.net COM dll打破引用vb6應用程序
- 28. 用.NET COM替換原生C++ COM .dll
- 29. 在c#.net中使用VB6 dll
- 30. 如何從.NET中使用VB6 DLL?