-1

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
4

3 回答 3

3

在过去的几天里,我一直在处理类似的问题。

毫无疑问,我的注册有问题。

就我而言,我使用位于以下位置的 regasm 注册了程序集:

  • C:\Windows\Microsoft.NET\Framework64\v4.0.30319

工作流代理是一个 32 位应用程序,所以我刚刚使用 regasm 可执行文件注册了程序集,位于:

  • C:\Windows\Microsoft.NET\Framework\v4.0.30319

像魅力一样工作

还要确保你构建你的 dll 以使用任何 CPU

于 2012-07-26T09:19:37.430 回答
2

这显然是您的大会注册的问题。您是“仅使用”RegAsm,还是使用了 RegAsm /codebase?

无论如何,在您的注册表中搜索“CoreComponentWorkflow.WorkflowHandler”。您应该找到一个具有较大 GUID 的键,并且在其下方应该有一系列其他注册表键。其中之一将被称为 InProcServer32,您应该在其中找到一些字符串值,包括“Assembly”和“Codebase”。

如果找到密钥,请仔细检查值是否正确。如果您没有找到密钥,请尝试再次注册您的程序集RegAsm /codebase <path to your assembly>

于 2012-07-10T11:24:39.077 回答
1

您的 VB 似乎很好。确保您: 1) 注册您的程序集(使用 RegAsm)或将其放入 GAC。2) 将代码中的 ProgId 设置为“CoreComponentWorkflow.WorkflowHandler”。以下是有关 ProgIds 的更多信息:http: //msdn.microsoft.com/en-us/library/system.runtime.interopservices.progidattribute (v=vs.90).aspx

于 2012-07-10T10:11:25.560 回答