在BizTalk迁移过程中,我需要一种简单可靠的方法来比较来自两台服务器的GAC(全局程序集缓存(。如果目标服务器中不存在GAC,我还想将其从QA转移到生产。这两个服务器都是BizTalk服务器,并且具有大量程序集GAC'd。我在网上看到了一些工具,但其中一个工具的链接断了(winmerge(,其他工具似乎并不真实。谢谢你的帮助。
每当我需要在GAC中查找内容时,我总是从Visual Studio(如果不可用,则从Windows SDK(命令提示符运行Gacutil.exe /l > c:/gac.txt
,然后在文本编辑器中搜索输出文件。你可以在两台机器上都这样做,并使用Beyond Compare这样的工具来比较两个GC的内容。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服务器以实现负载平衡,如果您没有准备好将所有内容部署到新服务器(并记录在案(,则会发现自己陷入困境。