代码之家  ›  专栏  ›  技术社区  ›  Craig Gidney Mihai

如何在.NET项目中对vb6 dll引用使用reg free com?

  •  4
  • Craig Gidney Mihai  · 技术社区  · 16 年前

    我已经努力解决这个问题很长时间了,但似乎没有什么效果。

    我有一个用vb6编写的COM DLL。我在.NET中添加了对该dll的引用,并在引用中将“isolated”和“copy local”属性设置为true。显然,这是为了启用注册自由COM。

    但它不起作用。如果我在另一台计算机上尝试,或者用regsvr32注销该dll,尝试访问该dll会引发一个异常(本质上说所需的COM类不存在)。dll和清单文件与exe在同一个文件夹中,但显然它完全忽略了它们。

    我做错什么了?我读过很多关于这个的零散文章,但没有一篇能给我一个有效的解决方案。我对Visual Studio进行了修补,但没有用。我已经对make my manifest进行了少量的修改,但它没有起作用(甚至在测试项目中)。

    4 回复  |  直到 16 年前
        1
  •  4
  •   Craig Gidney Mihai    16 年前

    Private Sub RunTest() Handles Button1.Click
        Try
            Dim x As New RegTestProject.RegTestCall
            MsgBox(x.RegTestFunction())
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
    End Sub
    
    Private Sub RunThreadedTest() Handles Button2.Click
        'fails if reg-free COM is used'
        Dim t As New Threading.Thread(AddressOf RunTest)
        t.Start()
    End Sub
    

        2
  •  3
  •   Daniel Pratt    16 年前

        3
  •  2
  •   JoshBerke    16 年前
        4
  •  2
  •   MarkJ    16 年前

    Troubleshooting article Virtual PC

    我不建议你看 Windows XP事件日志… 它总是包含 消息…这没用 找出问题所在。

    推荐文章