BizTalk编排中的名称空间问题.这是臭虫吗?

本文关键字:问题 空间 BizTalk | 更新日期: 2023-09-27 18:19:05

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

这里有一个简单的步骤来重复这个问题:
  1. 创建一个biztalk项目,将项目的默认命名空间更改为,例如' corporname . edit . testing '

  2. 在项目

  3. 中添加对microsoft . biztalk . edit . baseartifacts的引用
  4. 创建一个新的业务流程,简单地删除一个接收尖锐,将其设置为激活=True,将其过滤器表达式设置为(EDI)。ST01 == "997")

  5. 创建端口/消息需要使业务流程看起来工作

  6. 构建。您将看到这样的构建错误:

    名称空间'CorpName '中不存在类型或名称空间'ST01'。

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

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

清楚。如果您自己的项目名称空间有"EDI",那么编译器将尝试解析表达式"EDI"。

BizTalk编排中的名称空间问题.这是臭虫吗?

在您自己的项目名称空间中配置ST01,并且它将失败,因为您的项目中没有ST01。

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

没有别的办法,对不起。

唯一的解决方案是不要在解决方案的名称空间中使用"EDI"。

这不是特定于"EDI",如果你试图在其他地方使用"BTS",你会发现同样的问题。