我们正在更新我继承的 BizTalk 2009 应用程序。我正在将它们转换为 BizTalk 2013 R2。
当我尝试重新编译时,我收到以下相当著名的错误
Exception Caught: Cannot load source/destination schema: MyCompany.Schema.AppConfig.
Either the file/type does not exist, or if a project dependency exists, the dependent project is not built.
SOF 中只有两个帖子与此错误相关:
Biztalk 映射目标架构导入多个架构
Visual Studio 2008 中 BizTalk 架构项目的参考问题
在其他地方只有几个有意义的帖子。
该解决方案有 4 个项目,组织如下:
- 通用(包含一个 1 个架构 AppConfig.xsd 文件( 业务流程
- (1 个业务流程文件(
- 架构(引用 ASMX Web 服务( 映射
- (1 个映射文件,引用架构和常见项目(
Map 项目尝试将 AppConfig
类型的源消息转换为 Web 服务中的复杂类型之一的 AppConfigBE
类型。
我不断收到上面的编译时错误。
按照两个 SOF 帖子中的建议尝试了以下所有操作,以及 MSDN 论坛上的其他一些帖子,但没有一个奏效。
尝试在地图项目上交替使用本地复制(从真到假,反之亦然(
已尝试替换映射文件上的源和目标上的架构
使用完全限定的 .Net 类型名称引用架构
尝试引用.dll而不是架构和通用项目。
更新了 Web 引用;还删除并重新添加了 Web 引用
是否有解决方案/热修复程序等?我可以尝试其他建议吗?
更新 1:我们不得不打电话给Microsoft寻求帮助;工程师拿着我的项目文件在他们的电脑上试用;他说他们也有同样的问题,作为修复,建议设置Build Action
属性。BTM 将文件映射到 None
而不是 BTSCompile
。在此之后,项目成功生成。他说要用这个版本测试这个项目,让他们知道。我不确定的是,这样做的后果是什么?有关生成操作的许多主题都引用架构文件,而不是 BTS 项目中的映射文件。地图文件的标准构建操作是什么?
还有一项是从 GAC 中清除任何程序集,或使用后期生成脚本重新 GAC 它们。
我遇到了同样的问题。我需要添加
using Microsoft.XLANGs.BaseTypes;
using Microsoft.BizTalk.XLANGs.BTXEngine;
[assembly: Microsoft.XLANGs.BaseTypes.BizTalkAssemblyAttribute(typeof(BTXService))]
到AssemblyInfo.cs进入项目。