简体   繁体   English

BizTalk 2013r2 地图中缺少 Functoid

[英]Missing Functoid in BizTalk 2013r2 Map

I've picked source code for an existing BizTalk 2013r2 solution that I'm trying to compile using Visual Studio 2013.我为现有的 BizTalk 2013r2 解决方案选择了源代码,我正在尝试使用 Visual Studio 2013 编译该解决方案。

I'm hitting the following error when trying to compile a map:尝试编译地图时遇到以下错误:

Mapper Compiler: Functoid not found: guid (2de6985a-3dff-46eb-a7d8-4fc884756860) with functoid id (54009).映射器编译器:找不到 Functoid:guid (2de6985a-3dff-46eb-a7d8-4fc884756860) 和 functoid id (54009)。 Check if the assembly implementing this functoid is present检查是否存在实现此 functoid 的程序集

I've scanned all the source code I was provided with and there's no sign of any custom functoid classes.我已经扫描了我提供的所有源代码,并且没有任何自定义 functoid 类的迹象。 Maybe I'm missing a reference to an open source functoid library but from what I can see in the .btm file, there's not much to go on:也许我缺少对开源 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>

Any ideas?有任何想法吗?

Maps take reference from GACed assemblies, be it helper libraries or any other libraries. Maps 从 GACed 程序集中引用,无论是帮助程序库还是任何其他库。 Custom functoids are also installed in GACed and then only can be added to tool boxes in Map editor.自定义 functoids 也安装在 GACed 中,然后只能添加到地图编辑器的工具箱中。

Maybe on the source machine it was working as functoid assembly was deployed.也许在源机器上它正在部署 functoid 程序集。

To resolve this issue, check the map project references and all referenced projects are building successfully.要解决此问题,请检查地图项目引用,并且所有引用的项目都已成功构建。

There also may be a case of map assembly getting deployed when you tried to build the map project.当您尝试构建地图项目时,也可能会出现地图程序集被部署的情况。 But since it was deployed when VS solution was open it will not take reference to that deployed assembly yet.但是由于它是在 VS 解决方案打开时部署的,因此它不会引用该部署的程序集。 Try restarting the Visual Studio and open the solution again and then build the map project.尝试重新启动 Visual Studio 并再次打开解决方案,然后构建地图项目。

It sounds like you are missing a custom functoid.听起来您缺少自定义 functoid。 This is the reason I am not a fan of custom functoids.这就是我不喜欢自定义 functoid 的原因。 I prefer to put custom code in scripting functoids because it then goes with the map in source code.我更喜欢将自定义代码放在脚本 functoids 中,因为它随后会与源代码中的地图一起使用。 That custom functoid does not appear in any of the searches, for example BizTalk Server: List of Custom Functoids (Technet).该自定义 functoid 不会出现在任何搜索中,例如BizTalk Server:自定义 Functoid 列表(Technet)。 So I think you are on your own.所以我认为你是靠自己的。

Look for a custom assembly in C:\\Program Files (x86)\\Microsoft BizTalk Server 2013 R2\\Developer Tools\\Mapper Extensions or as bts_dev says in the GAC.C:\\Program Files (x86)\\Microsoft BizTalk Server 2013 R2\\Developer Tools\\Mapper Extensions或 bts_dev 在 GAC 中查找自定义程序集。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM