BizTalk 2013r2 映射中缺少 Functoid

Missing Functoid in BizTalk 2013r2 Map

我已经为我尝试使用 Visual Studio 2013 编译的现有 BizTalk 2013r2 解决方案选择了源代码。

我在尝试编译地图时遇到以下错误:

Mapper Compiler: Functoid not found: guid (2de6985a-3dff-46eb-a7d8-4fc884756860) with functoid id (54009). Check if the assembly implementing this functoid is present

我已经扫描了提供给我的所有源代码,没有任何自定义 functoid 的迹象 类。也许我缺少对开源 functoid 库的引用,但从我在 .btm 文件中看到的内容来看,没有太多可继续的内容:

<Functoid FunctoidID="31" Functoid-FID="54009" X-Cell="44" Y-Cell="196" Functoid-CLSID="2de6985a-3dff-46eb-a7d8-4fc884756860">
<Input-Parameters>
    <Parameter Type="constant" Value="ReceivedFileName" linkIndex="0" Guid="10eb4cb9-05b3-4e6e-b534-f3ee7ea8dadb" />
    <Parameter Type="constant" Value="http://schemas.microsoft.com/BizTalk/2003/file-properties" linkIndex="1" Guid="e9119104-6fb3-43ef-9d17-ada0568dc557" />
</Input-Parameters>

有什么想法吗?

地图从 GACed 程序集中引用,无论是帮助程序库还是任何其他库。自定义 functoids 也安装在 GACed 中,然后只能添加到地图编辑器中的工具箱。

可能在源机器上它正在作为部署的 functoid 程序集工作。

要解决此问题,请检查地图项目引用,所有引用的项目都已成功构建。

当您尝试构建地图项目时,也可能会出现部署地图程序集的情况。但是由于它是在 VS 解决方案打开时部署的,因此它不会引用该已部署的程序集。尝试重新启动 Visual Studio 并再次打开解决方案,然后构建地图项目。

听起来您缺少自定义 functoid。这就是我不喜欢自定义 functoid 的原因。我更喜欢将自定义代码放在脚本 functoid 中,因为它会与源代码中的地图一起使用。 该自定义 functoid 不会出现在任何搜索中,例如 BizTalk Server: List of Custom Functoids (Technet)。所以我认为你是一个人。

C:\Program Files (x86)\Microsoft BizTalk Server 2013 R2\Developer Tools\Mapper Extensions 中或按照 bts_dev 在 GAC 中的说明寻找自定义程序集。