1

我在我的工作项目中发现了这个问题,想知道是否有任何方法可以避免这种情况,而不是更改我的项目的命名空间:

这是重复此问题的简单步骤:

  1. 创建一个 biztalk 项目,将项目的默认命名空间更改为“CorpName.EDI.Testing”。

  2. 在项目中添加对 Microsoft.BizTalk.Edi.BaseArtifacts 的引用

  3. 创建一个新的编排,简单地删除一个接收锐器,将其设置为激活 = True,将其过滤器表达式设置为 (EDI.ST01 == "997")

  4. 创建端口/消息需要使编排看起来有效。

  5. 建造。你会看到这样的构建错误:

    命名空间“CorpName.EDI”中不存在类型或命名空间名称“ST01”(您是否缺少程序集引用?)

从编排生成的 cs 代码如下所示:

     new System.Type[] {
        typeof(EDI.ST01)
    },
    new Microsoft.XLANGs.BaseTypes.EXLangPredicateOperator[] {
        Microsoft.XLANGs.BaseTypes.EXLangPredicateOperator.eOpEqual
    },

清楚地。如果您自己的项目命名空间有“EDI”,那么编译器将尝试使用您自己的项目命名空间在编排中解析表达式“EDI.ST01”,它会失败,因为您的项目中没有 ST01。

4

1 回答 1

3

您正在经历的是自 BizTalk Server 2004 以来编排设计器的一个众所周知的“行为”。

没有办法解决,对不起。

唯一的解决方案是不在解决方案的命名空间中使用“EDI”。

它不是特定于“EDI”的,如果您尝试在其他地方使用“BTS”,您会发现同样的问题。

于 2014-08-22T19:14:22.363 回答