1

我正在尝试创建一个自定义 CodeActivity 以与 TFS 2010 一起使用。到目前为止,我的大部分工作都基于这个系列(感谢 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 活动,但我担心如果无法访问上下文对象,我将无法获得我希望实现的日志记录粒度。这项工作将相当参与。

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

4

2 回答 2

0

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

于 2012-07-31T21:52:48.627 回答
0

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

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

于 2012-10-01T20:10:12.337 回答