1

解决下述错误的解决方法是有效地删除七个标准 BizTalk Server 2016 数据库 functoid 提供的功能。愿望是能够不必这样做。

在构建项目时,我们收到此错误:

这

“MapperCompiler”任务意外失败。System.ApplicationException:无法加载包装器:C:\Program Files (x86)\Microsoft BizTalk Server 2016\Developer Tools\Mapper Extensions\Microsoft.BizTalk.CrossReferencingFunctoids.dll。---> System.IO.FileNotFoundException: Mapper Compiler: Unable to load assembly from file or partial name C:\Program Files (x86)\Microsoft BizTalk Server 2016\Developer Tools\Mapper Extensions\Microsoft.BizTalk.CrossReferencingFunctoids.dll at Microsoft.BizTalk.Mapper.OM.FunctoidManager.AddWrapper(String reference) at Microsoft.BizTalk.Mapper.OM.FunctoidManager.LoadWrappers(String[] references) --- 内部异常堆栈跟踪结束 --- 在 Microsoft.VisualStudio。 BizTalkProject.Compiler.MapCompiler.Compile(BizTalkBuildSnapshot buildSnapshot,IEnumerable 1 mapFilesToCompile, IEnumerable1 schemaFiles,1& generatedCodeFiles, List1& xsltFiles) 在 Microsoft.VisualStudio.BizTalkProject.BuildTasks.MapperCompiler.Execute() 在 Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() 在 Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext( ) {我的项目名称}

同时,当尝试打开现有地图或创建新地图时,我们会收到此错误:

Microsoft BizTalk Mapper - 无法加载包装器:C:\Program Files (x86)\Microsoft BizTalk Server 2016\Developer Tools\Mapper Extensions\Microsoft.BizTalk.CrossReferencingFunctoids.dll。

装配位置的图片(显示其大小和 MS 发布的日期):

Microsoft.BizTalk.CrossReferencingFunctoids.dll 于 2016 年 9 月 30 日晚上 9:43 发布,大小 38KB

从至少版本 2006 R2 开始,此程序集一直是 BizTalk Server 映射数据库 functoids 的库存组件。BTS 的 MS 文档中描述了 functoids:

数据库 Functoids 的 MS 文档描述

在 Visual Studio 的地图设计图面上,functoid 如下所示:

functoids 在 VS 2015 中是如何出现的

这些 BizTalkMgmtDb 表是交叉引用 functoid 的目标:

交叉引用 functoid 使用的 BizTalkMgmtDb 表

仅供参考,这是我能找到的关于这个确切症状的最古老的帖子。没有发布此帖子的解决方案:

BTS 2006 R2 出现相同症状的图片

这是我们可怕的解决方法:删除 Microsoft.BizTalk.CrossReferencingFunctoids.dll

从其位置删除程序集的影响...

C:\Program Files (x86)\Microsoft BizTalk Server 2016\Developer Tools\Mapper Extensions

...是双重的:

  • 错误(在构建具有地图的项目以及尝试创建新地图或显示现有地图时)消失了。
  • 交叉引用 functoids 的用处不可用。这七个 functoid 仍然出现在映射设计图面的工具箱中,但是如果您尝试使用其中一个,则会收到此消息(functoid 仍然出现在工具箱中 - 可能是因为程序集仍在 GAC 中):

图片显示工具箱中的 functoids 但映射器不可用

注意:仅供参考,我无法在我的 Windows 10 PC 上出现任何这些症状,即使在通过以下步骤将其配置为与服务器环境匹配之后:

  • 安装 BTS 2016 累积更新 5
  • 安装了与服务器上使用的相同的 .NET Framework 4.7.2(又名 4.7.03062)

问题的服务器环境:

  • BizTalk Server 2016 包括累积更新 5
  • BizTalk 安装在 Windows Server 2012 R2 Datacenter (x64) - 特别是版本 6.3.9600 Build 9600。服务器是最新的补丁
  • Visual Studio 2015(使用 BTS 2016 所需的版本)
  • SQL Server 2016 SP2(内部版本 1.3.0.5161.0)数据库位于单独的计算机上
4

1 回答 1

0

您说您运行的是 Windows Server 2012,BizTalk 2016 不支持此版本。目前仅支持 Windows Server 2012 R2 和 Windows Server 2016。

于 2018-09-06T17:47:00.917 回答