C# BizTalk业务流程中的命名空间问题。这是虫子吗?

C# BizTalk业务流程中的命名空间问题。这是虫子吗?,c#,biztalk,biztalk-2013,biztalk-orchestrations,C#,Biztalk,Biztalk 2013,Biztalk Orchestrations,我在我的工作项目中发现了这个问题,不知道是否有什么方法可以避免这个问题,而不是更改项目的名称空间: 以下是重复此问题的简单步骤: 创建biztalk项目,将项目的默认命名空间更改为,例如“CorpName.EDI.Testing” 在项目中添加对Microsoft.BizTalk.Edi.BaseArtifacts的引用 创建一个新的业务流程,简单地删除一个receive sharp,将其设置为Activate=True,将其筛选器表达式设置为(EDI.ST01==“997”) 创建端口/消息需

我在我的工作项目中发现了这个问题,不知道是否有什么方法可以避免这个问题,而不是更改项目的名称空间:

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

  • 创建biztalk项目,将项目的默认命名空间更改为,例如“CorpName.EDI.Testing”

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

  • 创建一个新的业务流程,简单地删除一个receive sharp,将其设置为Activate=True,将其筛选器表达式设置为(EDI.ST01==“997”)

  • 创建端口/消息需要使业务流程看起来正常工作

  • 建造。您将看到如下生成错误:

         new System.Type[] {
            typeof(EDI.ST01)
        },
        new Microsoft.XLANGs.BaseTypes.EXLangPredicateOperator[] {
            Microsoft.XLANGs.BaseTypes.EXLangPredicateOperator.eOpEqual
        },
    
    命名空间“CorpName.EDI”中不存在类型或命名空间名称“ST01”(是否缺少程序集引用?)

  • 业务流程生成的cs代码如下所示:

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

    很明显。如果您自己的项目命名空间具有“EDI”,则编译器将尝试使用您自己的项目命名空间解析编排中的表达式“EDI.ST01”,并且它将失败,因为您的项目中没有ST01。

    您遇到的是自BizTalk Server 2004以来编排设计器的一个众所周知的“行为”

    没办法,对不起

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


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

    谢谢。我正在更改我的项目名称空间。