【问题标题】:BizTalk Custom Pipeline component in GAC not updatingGAC 中的 BizTalk 自定义管道组件未更新
【发布时间】:2015-05-26 05:56:31
【问题描述】:

我最近开始关注this method for Pipeline Component Development,它对事物的开发部分非常有效。它甚至在组件/管道的第一次部署时工作得很好。

但是,现在的问题是,当我将更改部署到管道组件 DLL 时,我无法更新它们。

我关注该帖子,将程序集添加到 GAC。然后我从 BizTalk 导出包含我的程序集的 MSI 并使用“覆盖”选项导入。我重新启动主机实例,重新启动 IIS(因为我的隔离主机正在使用该组件)但我对 dll 所做的更改并未在(在这种情况下)临时服务器上发生。

我检查了 MSIL 文件夹,文件夹和 dll 确实得到了更新日期修改,但是当我发送消息时我的更改没有发生。

有没有我遗漏的步骤?我是否必须增加组件本身的版本号?我增加了版本并重新部署了引用组件的管道,即使这样也不会启动更改。

【问题讨论】:

    标签: biztalk gac biztalk-2013 custom-pipeline-component


    【解决方案1】:

    我发现了我的问题。在我的开发环境中,我必须:

    • 右击<myApplication>/Resources中的资源
    • 选择“修改”,然后按
    • “刷新”按钮。
    • 导航到安装自定义管道的 dll 的 GAC 目录C:\Windows\Microsoft.NET\assembly\GAC_MSIL\<myComponent>\v4.0_<myVersion>__<myPublickey>
    • 重启主机实例(不确定这是否完全必要)

    然后我可以导出 dll 并将其导入目标服务器(选中 Overwrite Resources)。如果没有刷新,目标服务器上将无法识别 dll 更改。希望有一天这可以节省一些时间。

    【讨论】:

    • 是的,MSI 导出总是来自 BizTalk 数据库而不是 GAC,这就是为什么只 GAC 一个 DLL 而不是也将其导入 BizTalk 数据库是危险的事情,无论是通过如上所述刷新或导入包含它的 MSI。您可能需要考虑在您的后期构建步骤中添加一个 BTTask 步骤到 AddResource msdn.microsoft.com/en-us/library/aa561819.aspx 以同时导入和 GAC
    【解决方案2】:

    您不必将程序集导出到 msi 来安装它。在资源区域中添加或更新它将执行与导入相同的操作。我们经常使用这种方法。

    我通常增加版本号,因为它有助于确保我期望运行的代码正在运行。如果出现生产问题,它还可以轻松回滚到以前的版本。

    【讨论】:

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