8

我们最近有一位开发人员离开了我们的组织。我们不确定他放在生产服务器上的可执行文件版本是否与当前 TFS 中的版本相同。有没有办法(除了使用 Just Compile 或 ILDASM 之类的东西)从 TFS 构建项目并将该可执行文件与我们生产服务器上当前的可执行文件进行比较?

更新:我正在尝试 Just Decompile,并且我已经加载了两个二进制文件,所以我正在逐步检查每个命名空间、成员等以将它们相互比较。我习惯于在 Visual Studio 中使用架构比较来比较 2 个数据库的架构,并查看更新、删除和添加的项目,并突出显示差异。是不是有一些工具可以采用这两个反编译的二进制文件并以某种方式突出差异?

4

3 回答 3

6

现在我只能想到这种方法:

  1. 使用dotPeek反编译实时程序集
  2. 使用dotPeek反编译从 TFS 新构建的相同程序集
  3. 在两个反编译的源代码上使用 Beyond Compare 之类的工具
  4. 根据需要合并更改

希望这就是你要找的东西??

其他在版本控制方面可能对未来有益的阅读材料,因此您知道哪些 dll 包含哪些功能(可能对您有用也可能无用,如果我告诉您一些显而易见的事情,请原谅我):

维护程序集版本号的最佳实践/指南

祝你好运

于 2012-07-09T23:17:24.793 回答
5

是的,使用NDepend可以区分两个 .Net 程序集。尽管即使两次编译完全相同的源也不会生成完全相同的程序集。

于 2012-07-09T23:17:44.397 回答
-1

我们用于详细比较(包括二进制文件比较)的产品是Beyond Compare。当我们第一次拿到这个产品时,我认为它的用途有限,但它帮助我们解决了一些非常棘手的问题。它比较目录、文本文件、二进制文件、mp3、图片和软件版本。它也不是特别贵。

我刚刚在 Release 和 Debug 中针对应用程序的二进制文件运行了该产品,它突出了每个差异。

我确信您可以针对两个二进制文件运行 ILDASM 并进行眼球比较,但这样的工具可能会一遍又一遍地为自己付出代价。

于 2012-07-09T23:15:58.677 回答