GAC 中的程序集安装

每台计算机都包含全局程序集缓存 (GAC),其中包含该计算机上的一个或多个应用程序所使用的程序集。 为使 BizTalk Server 能够在运行时处理消息,BizTalk 应用程序中包括的程序集必须位于运行该应用程序的计算机的 GAC 中。

如果您的应用程序单独放置在一台服务器上,则程序集只需位于该服务器的 GAC 中。 不过,如果该应用程序有多个宿主服务器,那么该应用程序中的程序集必须位于需要访问程序集所含项目的所有计算机的 GAC 中。 例如,如果将Assembly_A部署到 Server_1,然后在 Server_2 上的主机上登记Assembly_A,则必须在 Server_2 上的 GAC 中安装Assembly_A。 否则,Server_2将无法在运行时访问Assembly_A。

特别是,如果程序集包含业务流程以及它们所依赖的任何程序集,则必须始终在运行特定主机(与业务流程绑定)实例的服务器的 GAC 中安装这些程序集。 此外,如果程序集包含供某端口使用的映射和管道,则必须在运行特定主机(充当该端口的适配器处理程序)实例的服务器上安装这些程序集。

您可以为各个程序集指定部署选项,在从 Visual Studio 部署程序集时将其安装到 GAC 中。 或者,也可以将程序集手动安装到 GAC 中。 此外,您可以指定部署选项,在将程序集部署到 BizTalk 应用程序中后将该程序集安装到 GAC 中。

下文汇总了将程序集安装到 GAC 中时可供使用的工具和方法:

  • Microsoft Visual Studio。 如前所述,可以设置项目属性,以在部署程序集时自动在 GAC 中安装程序集,如 如何在 Visual Studio 中设置部署属性中所述。 还可以使用 Visual Studio 附带的 Gacutil 命令行工具在 GAC 中手动安装程序集,如 如何在 GAC 中安装程序集中所述。

  • BTSTask 命令行工具。 使用 BTSTask 向 BizTalk 应用程序添加程序集后,可以指定选项,在导入或安装包含该程序集的应用程序时将该程序集安装到 GAC 中。 有关详细信息,请参阅 AddResource 命令:BizTalk 程序集。 另请参阅 AddResource 命令:.NET 程序集

  • BizTalk Server 管理控制台。 与 BTSTask 的方式相同,使用管理控制台向某个应用程序添加程序集后,可以指定选项,在导入或安装包含该程序集的应用程序时将该程序集安装到 GAC 中。 有关详细信息,请参阅 如何将 BizTalk 程序集添加到应用程序。 另请参阅 如何将 .NET 程序集添加到应用程序

    此外,还可以在将程序集部署到应用程序或将其添加到应用程序后随时配置部署选项,如 如何修改 BizTalk 程序集的部署选项中所述。 首次从 Visual Studio 将程序集部署到应用程序中时,管理控制台中的部署选项设置如下:安装时启用 GAC,导入时禁用 GAC。 如果对这些设置进行更改,如果从 Visual Studio 重新部署程序集,所做的更改仍将生效。

  • 拖放。 使用 Windows 资源管理器,可以将程序集文件拖放到 <Windows 文件夹>\assembly 中。

  • 其他方法。 还可以选择其他工具和方法,包括使用 Windows Installer 或第三方厂商开发的工具,将程序集安装到 GAC 中。

重要

为使您的应用程序正常工作,应确保 BizTalk 管理数据库和 GAC 中的程序集具有相同版本。 如果部署程序集时并不总是将其安装到 GAC 中,GAC 和 BizTalk 管理数据库中的程序集版本可能有所不同,从而导致运行时出现处理错误。

重要

有关版本编号的信息,请参阅 Microsoft Visual Studio 提供的.NET Framework帮助中的“程序集版本控制”。 请注意,BizTalk Server不支持使用 .NET 策略文件。

另请参阅

将 BizTalk 程序集从 Visual Studio 部署到 BizTalk 应用程序
了解 BizTalk 应用程序的部署和管理