【问题标题】:Is it possible to create and use a custom x86 CodeActivity with TFS 2010 workflow?是否可以通过 TFS 2010 工作流程创建和使用自定义 x86 CodeActivity?
【发布时间】:2012-07-31 21:46:58
【问题描述】:

我正在尝试创建一个自定义 CodeActivity 以与 TFS 2010 一起使用。到目前为止,我的大部分工作都基于此 series(为此感谢 Ewald)。

一切都运行良好,直到我在第二块并列。我正在尝试使用 Microsoft.BizTalk.ExplorerOM.dll 进行一些 BizTalk 配置。对 dll 的抱怨之一是它只是 x86,并且是来自 Microsoft 的内部 dll,我无法控制。我之前在 VS2008 中做过相同的任务,我基本上只是想将相同的功能转移到 VS2010,清理它,并将其集成到工作流程中。

当我第一次从 ExplorerOM 添加代码时,出现以下错误:

64 位进程不支持Explorer OM。

将支持项目更改为 32 位后,我得到以下信息:

无法创建未知类型“{clr-namespace:BizTalk.Deployment.CodeActivities;assembly=BizTalk.Deployment.CodeActivities}UndeployBizTalkBindings”。

在网络上进行一些研究后,我相当确定这是由于 64 位构建过程无法加载我现在的 32 位 dll。

有没有办法将构建过程本身指定为 32 位?我没有在 TFS 中看到任何设置。我曾考虑通过一个简单的 32 位控制台应用程序运行代码并使用 InvokeProcess 活动,但我担心如果无法访问上下文对象,我将无法获得我希望实现的日志记录粒度。这项工作将相当投入。

关于如何实现这一点的任何想法?我也愿意接受其他解决方案。

【问题讨论】:

    标签: c# workflow-foundation biztalk


    【解决方案1】:

    如何在 Windows 服务中托管 WCF 服务?如果您在服务中实现会话,您应该能够维护上下文。

    【讨论】:

    • 可能,但这似乎比它应该复杂得多:(
    【解决方案2】:

    事实证明,实现这一目标的最佳方法是通过 InvokeProcess 活动。我能够编写一个小型命令行实用程序并使用它调用它。标准输出可以通过 InvokeProcess 活动本身连接到 tfs 系统,从而保持日志记录和信息集中。

    理论上,对于任何需要调用 32 位进程的场景,使用小型命令行包装器都可以轻松重复此模式。

    【讨论】:

      猜你喜欢
      • 2011-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多