在 BizTalk 迁移期间,我需要一种简单且值得信赖的方法来比较来自两台服务器的 GAC(全局程序集缓存)。如果目标服务器中不存在 GAC,我还想将 GAC 从 QA 移至生产。这些都是 BizTalk 服务器,并且有大量的 GAC 组件。我在网上看到了一些工具,但指向一个工具的链接已损坏(winmerge),而其他工具似乎并不真实。谢谢你的帮助。
最佳答案
每当我需要在 GAC 中查找某些内容时,我总是从 Visual Studio(或者,如果不可用,Windows SDK)命令提示符运行 Gacutil.exe /l > c:/gac.txt
,然后在文本编辑器中搜索输出文件。您可以在两台机器上都这样做,并使用类似 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 数据库 because GACing is often not enough 中。
但是,如果您还没有准备好 MSI 文件,那么现在是制作它们的好时机。如果已将本地 GAC 设为可浏览,则应该很容易浏览到程序集并将其作为资源添加到您想要的任何 BizTalk 应用程序,然后将应用程序导出为 MSI 文件,其中将包含应用程序的所有资源。这样您就不必完全手动完成所有操作。
没有准备好将所有内容部署到新服务器(并且也有文档记录)是在灾难发生时发现自己陷入困境的好方法,或者如果您只需要添加另一个 BizTalk 服务器以进行负载平衡。
关于biztalk - 比较来自两台服务器的 GAC?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6598979/