我有一个.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. 如何在vb6库项目中引用com可见C#dll
- 7. COM DLL在VB6中?
- 8. 是否可以同时调试VB6和C++ COM DLL?
- 9. 如何集中一个VB6引用的.net dll(com interop)dll
- 10. 在vb6中使用.net dll
- 11. 在COM可见DLL中显示窗体
- 12. COM可见DLL作为ActiveX对象
- 13. 用WiX在GAC中注册COM DLL
- 14. 是否可以使用COM可见类型构建.NET DLL,而不需要VS需要提升?
- 15. 安装.NET 4.0 dll到GAC
- 16. 使用VB6 COM DLL作为外壳或接口与.NET代码
- 17. COM类的可见性:C#到VB6
- 18. 如何使用IKVM com创建的.dll可见?
- 19. 可以NuGet分发COM DLL吗?
- 20. 在哪里可以找到COM DLL?
- 21. 如何使第三方dll中的方法在vb6中可见?
- 22. 在c#.net中使用VB6 dll
- 23. 如何从.NET中使用VB6 DLL?
- 24. VB6使用.net dll。无法读取app.confg
- 25. 用.NET COM替换原生C++ COM .dll
- 26. 使用.NET注册com对象dll
- 27. IronPython可以直接调用.net dll吗?
- 28. 是否可以使用Java创建dll?
- 29. 是可以安全使用的DLL从
- 30. 在ASP Classic中注册一个用于COM可见性的.NET DLL