【问题标题】:BizTalk Custom Pipeline Component - You have selected an invalid pipeline component assemblyBizTalk 自定义管道组件 - 您选择了无效的管道组件程序集
【发布时间】:2016-10-14 06:12:07
【问题描述】:

我正在创建一个类库。在成功构建该类库后,我将该 DLL 放置到 BizTalk Server 的管道组件文件夹中,并将该 DLL 添加到 GAC 文件夹中。

现在我试图将其作为自定义管道组件引用到另一个我正在创建自定义管道的项目中。但是当我尝试添加该 DLL 时,它会引发异常

您选择了无效的管道组件装配。如果您从 UNC 路径加载程序集,请检查程序集的安全设置

我已经有一些与此异常相关的可用解决方案,例如

  • 首先,检查您的管道组件类是否公开。
  • 此外,请确保您从自定义管道组件引用的任何程序集都位于 GAC 或 Pipeline Components 文件夹中(如果您将自定义管道组件程序集放在该文件夹中)。
  • 检查缺少的依赖项,它们都必须放在 GAC 或 Pipeline Components 文件夹中

但仍然无法解决问题。

【问题讨论】:

  • 你的组件是管道组件还是只是一个辅助类?这个问题不是很清楚,请您详细说明一下?
  • 它是一个辅助类。但具有与该管道组件相关的属性。它包含对 IPropertyBag 和相关内容的继承

标签: c# biztalk unc custom-pipeline-component


【解决方案1】:

首先,不要将自定义管道组件放在 %Pipeline Components% 文件夹中。详细信息在这里:BizTalk Server: Deploying Custom Pipeline Components in BizTalk Server 2006 and Higher

接下来,您必须实现至少 2 个但最多 5 个(?)接口才能将组件识别为管道组件。确保这一点的最佳方法是使用 CodePlex 提供的出色的管道组件向导:BizTalk Server Pipeline Component Wizard

2013 R2 版本在这里:http://btsplcw.codeplex.com/workitem/21354

【讨论】:

  • 不把它放在 Pipeline 文件夹中,只有 GAC 仍然是一个备受争议的话题 ;-) 我的建议,仅在文件夹中的开发环境中,在其他环境中 GAC 它们作为您自动化的一部分部署。
  • 谢谢你们的指导,但我想再澄清一件事,那就是是否有任何与该资源文件相关的内容。因为我观察到的是我创建了两个项目。在一个项目中我有资源文件,但在另一个项目中我没有。所以有资源文件的项目工作正常。该管道组件已正确创建并且工作正常,但另一个不工作。
  • 是的,这是一件很容易忘记的事情,我有。资源文件的路径必须与正在执行的程序集相匹配。如果您命名另一个不同,然后移动文件,并且没有更新资源路径,它肯定会失败。大多数情况下,您可以只从工作文件中复制,只保留资源文件名本身。
【解决方案2】:

我今天遇到了同样的问题。我从另一个 PipelineComponents C# 库复制了现有的管道。无论出于何种原因,“构建操作”设置为无,而不是“编译”。因此,即使项目构建并创建了一个 .DLL,它也不包括我修改过的 C# 代码。

然后我还必须关闭并重新打开 Visual Studio,因为之前的 .DLL 仍然被缓存。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-15
    • 2012-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-31
    相关资源
    最近更新 更多