无法实例化COM EXE中的.NET DLL对象

无法实例化COM EXE中的.NET DLL对象,.net,vb6,interop,.net,Vb6,Interop,我的问题只发生在一台机器上 下面是一个场景。我有一个EXE,目前仍在VB6中开发,但我成功地将其DLL迁移到.NET。EXE包含对DLL中类的对象引用,并且在启动期间使用引用的DLL初始化对象 由于某些原因,仅在一台计算机上无法初始化对象,即使DLL已正确注册(使用ragasm.exe)。所有其他机器都没有问题 出现问题的机器是Windows XP 32位计算机,用户以管理员身份登录。我甚至已经手动注册了DLL,没有问题,但程序仍然无法创建对它的引用 不确定我可以采取什么其他步骤来调试这个问题。

我的问题只发生在一台机器上

下面是一个场景。我有一个EXE,目前仍在VB6中开发,但我成功地将其DLL迁移到.NET。EXE包含对DLL中类的对象引用,并且在启动期间使用引用的DLL初始化对象

由于某些原因,仅在一台计算机上无法初始化对象,即使DLL已正确注册(使用ragasm.exe)。所有其他机器都没有问题

出现问题的机器是Windows XP 32位计算机,用户以管理员身份登录。我甚至已经手动注册了DLL,没有问题,但程序仍然无法创建对它的引用

不确定我可以采取什么其他步骤来调试这个问题。从逻辑上讲,它应该工作,因为它已正确注册

谢谢,
Chris

使用进程监视器查看应用程序偏离轨道的地方


您应该看到VB6应用程序点击注册表以查找DLL的位置,然后看到它访问文件系统以查找DLL。如果您在这之后仍然被卡住,请发回结果。

让我验证我是否正确理解:您有一个VB6可执行文件,该文件实例化了托管在VB6 DLL中的COM对象。到目前为止,一切顺利。你说你已经将DLL迁移到了.NET,这就是它变得模糊的地方。您是否在.NET中重写了部分程序,并通过互操作使用VB6 DLL?很抱歉,看起来很难理解,只是要确保我的部分是正确的:)(我要提到的是,注册DLL通常会通过regsvr32完成)…您的.Net DLL取决于.Net Framework的正确版本。请确保此XP安装了用于.Net dll的框架。确定。当它“无法初始化对象”时,会出现什么错误?很抱歉出现任何混淆,它是一个.Net(framework 2.0)dll(以前是VB6 dll)。我已经检查过他是否安装了.NETFramework2.0(他最多安装了3.5),错误只是“自动化错误”,我的自定义消息让我知道什么对象有问题。我可以使用标准的.NET regasm.exe进程手动注册DLL,这表明一切正常。我必须尝试一下tcarvin下面的建议,看看它是否能让我对这个问题有更多的了解。