我在我的工作项目中发现了这个问题,想知道是否有任何方法可以避免这种情况,而不是更改我的项目的命名空间:
这是重复此问题的简单步骤:
创建一个 biztalk 项目,将项目的默认命名空间更改为“CorpName.EDI.Testing”。
在项目中添加对 Microsoft.BizTalk.Edi.BaseArtifacts 的引用
创建一个新的编排,简单地删除一个接收锐器,将其设置为激活 = True,将其过滤器表达式设置为 (EDI.ST01 == "997")
创建端口/消息需要使编排看起来有效。
建造。你会看到这样的构建错误:
命名空间“CorpName.EDI”中不存在类型或命名空间名称“ST01”(您是否缺少程序集引用?)
从编排生成的 cs 代码如下所示:
new System.Type[] {
typeof(EDI.ST01)
},
new Microsoft.XLANGs.BaseTypes.EXLangPredicateOperator[] {
Microsoft.XLANGs.BaseTypes.EXLangPredicateOperator.eOpEqual
},
清楚地。如果您自己的项目命名空间有“EDI”,那么编译器将尝试使用您自己的项目命名空间在编排中解析表达式“EDI.ST01”,它会失败,因为您的项目中没有 ST01。