0

我正在尝试从 VB 脚本代码调用 C# 函数,我收到“Activex 组件无法创建对象”错误。

我做了以下事情。

  1. 使用 ProgID 和 Comvisible True 和强命名创建类库
  2. 使用 RegAsm.exe /codebase dllpath 注册了 dll(Dll 注册成功,我可以在注册表中看到)
  3. 使用 VB 脚本代码创建对象并调用 C# 函数,如下所示。
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() 这个函数只会创建一个日志文件并在其中添加一些文本。

4

1 回答 1

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,请参阅如何在 64 位机器上以 32 位模式运行 VBScript?

于 2012-07-27T10:39:18.583 回答