在BizTalk迁移期间,我需要一种简单且可信的方式来比较来自两台服务器的GAC(全局程序集缓存)。如果目标服务器中不存在GAC,我还想将GAC从QA移动到生产。这些都是BizTalk服务器,并且有大量的GAC组件。我在网上看到了一些工具但是一个工具的链接被破坏了(winmerge)而其他工具看起来并不真实。谢谢你的帮助。
答案 0 :(得分:6)
每当我需要在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服务器以实现负载平衡。 / p>