2011-07-06 43 views
3

在BizTalk迁移过程中,我需要一种简单可靠的方式来比较来自两台服务器的GAC(全局程序集缓存)。如果目标服务器中不存在GAC,我也希望将GAC从QA移至生产。这些都是BizTalk服务器,并且有大量GAC组件。我在网上看到了一些工具,但其中一个的链接被破坏(winmerge),而其他的似乎并不真实。谢谢你的帮助。比较两台服务器的GAC?

回答

6

每当我需要在GAC中找到某些东西时,我总是从Visual Studio运行Gacutil.exe /l > c:/gac.txt(或者,如果没有,Windows SDK)命令提示符,然后在文本编辑器中搜索输出文件。您可以在两台计算机上执行此操作,并使用类似Beyond Compare这样的工具来比较两台GAC的内容。除了比较之外,还可以让您进行目录比较,以便比导出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服务器即可。

+0

+1并值得3更多upvotes。 – Filburt

+0

ps。另见:https://gaccompare.codeplex.com/;即专门为比较GAC而创建的工具。添加评论而不是完整的答案,因为@ schellack的回答给出了有关这方面的重要信息BizTalk的具体问题/我不希望引起注意。 – JohnLBevan