3

在 BizTalk 迁移期间,我需要一种简单且值得信赖的方法来比较来自两台服务器的 GAC(全局程序集缓存)。如果目标服务器中不存在 GAC,我还想将 GAC 从 QA 移至生产。这些都是 BizTalk 服务器,并且有大量 GAC 程序集。我在网上看到了一些工具,但其中一个的链接已损坏(winmerge),而其他工具似乎并不真实。谢谢你的帮助。

4

1 回答 1

6

每当我需要在 GAC 中查找某些内容时,我总是Gacutil.exe /l > c:/gac.txt从 Visual Studio(或者,如果不可用,则使用 Windows SDK)命令提示符运行,然后在文本编辑器中搜索输出文件。您可以在两台机器上执行此操作,并使用Beyond Compare之类的工具来比较两个 GAC 的内容。Beyond Compare 还让您进行目录比较,因此这可能比导出 GAC 中的内容列表更容易(如果您遵循此答案的下一部分)。

要导出程序集,您可以按照http://blogs.msdn.com/b/johnwpowell/archive/2009/01/14/how-to-copy-an-assembly-from-the-gac.aspx中的说明操作到使 GAC 的行为类似于普通的 Windows 目录,使您能够复制和粘贴所需的文件。

不过,我会说,最好的选择是将您的 BizTalk 程序集放在打包的 MSI 文件中,您可以简单地将其导入您想要的任何 BizTalk 服务器(然后实际执行到 GAC)。这确保了您需要的内容在 BizTalk 数据库中,因为 GACing 通常是不够的

但是,如果您还没有准备好 MSI 文件,那么现在是制作它们的好时机。如果已使本地 GAC 可浏览,那么应该很容易浏览到程序集并将其作为资源添加到您想要的任何 BizTalk 应用程序,然后将应用程序导出为 MSI 文件,该文件将包括应用程序的所有资源。这样您就不必完全手动完成所有操作。

没有准备好将所有东西部署到新服务器(并且也记录在案)是在灾难发生时发现自己陷入困境的好方法,或者如果您只需要添加另一个 BizTalk 服务器以进行负载平衡。

于 2011-07-07T12:56:53.500 回答