获取“Activex组件无法创建对象”

时间:2012-07-11 08:41:11

标签: c# com registry

我试图从VB脚本代码调用C#函数,我得到“Activex Component cant create object”错误。

我做了以下事情。

  1. 使用ProgID和Comvisible True以及强名称
  2. 创建类库
  3. 使用RegAsm.exe / codebase dllpath注册了dll(Dll注册成功,我能在注册表中看到)
  4. 使用VB脚本代码创建对象并调用C#函数,如下所示。
  5. Option Explicit
    Dim testwfhandler
    Set testwfhandler= CreateObject("CoreComponentWorkflow.WorkflowHandler")
    If Not testwfhandler Is Nothing Then
        Call testwfhandler.test()
    End If
    Set testwfhandler= Nothing
    

    从我服务器上安装的第三方应用程序(Tridion工作流程)执行此VB脚本。

    不知道为什么会出现上述错误,当我直接从服务器执行相同的代码时,它可以正常工作。

    test()这个函数只会创建一个日志文件并在其中添加一些文本。

1 个答案:

答案 0 :(得分:3)

  

答案已通过评论提供,但我认为   有意义地提供一个真正的答案,以便其他人可以轻松找到它   回来。

根据VBScript的加载/执行方式,您应该使用32位或64位版本的RegAsm.exe注册DLL。

在64位操作系统上,您应该找到32位版本的regasm,C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe

和64位版本的regasm应该在, C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe

如果要在64位计算机上以32位模式自行运行VBScript,请参阅How do I run a VBScript in 32-bit mode on a 64-bit machine?