我用VB.NET创建了一个COM DLL。 它有COMVisible = true,并且使用它的TLB文件,我可以在VB6中使用这个DLL。
在测试机器上,我只能在使用regasm.exe注册后在VB6应用程序中使用COM DLL。
有人知道为什么我必须使用regasm注册它,或者是否有任何方法我不需要使用regasm注册它?
答案 0 :(得分:1)
.NET不会制作COM dll。它模拟COM。当您注册.NET COM DLL时,它会注册核心.NET DLL(MSCORE.DLL),它处理和转换COM调用并传递给.NET DLL。
如果regasm只能执行每台机器安装是上面的问题,那么从Regasm导出为reg文件。使用HKCR
然后HKCU\Software\Classes
搜索并替换regedit /s <path to reg file>
。非管理员可以通过合并reg文件来安装。