解决下述错误的解决方法是有效地删除七个标准 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, IEnumerable
1 schemaFiles,1& generatedCodeFiles, List
1& xsltFiles) 在 Microsoft.VisualStudio.BizTalkProject.BuildTasks.MapperCompiler.Execute() 在 Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() 在 Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext( ) {我的项目名称}
同时,当尝试打开现有地图或创建新地图时,我们会收到此错误:
装配位置的图片(显示其大小和 MS 发布的日期):
从至少版本 2006 R2 开始,此程序集一直是 BizTalk Server 映射数据库 functoids 的库存组件。BTS 的 MS 文档中描述了 functoids:
在 Visual Studio 的地图设计图面上,functoid 如下所示:
这些 BizTalkMgmtDb 表是交叉引用 functoid 的目标:
仅供参考,这是我能找到的关于这个确切症状的最古老的帖子。没有发布此帖子的解决方案:
这是我们可怕的解决方法:删除 Microsoft.BizTalk.CrossReferencingFunctoids.dll
从其位置删除程序集的影响...
C:\Program Files (x86)\Microsoft BizTalk Server 2016\Developer Tools\Mapper Extensions
...是双重的:
- 错误(在构建具有地图的项目以及尝试创建新地图或显示现有地图时)消失了。
- 交叉引用 functoids 的用处不可用。这七个 functoid 仍然出现在映射设计图面的工具箱中,但是如果您尝试使用其中一个,则会收到此消息(functoid 仍然出现在工具箱中 - 可能是因为程序集仍在 GAC 中):
注意:仅供参考,我无法在我的 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)数据库位于单独的计算机上