比较两个DLL文件

9

场景

我有一个编译为DLL的C#应用程序。 我有上周和本周的版本构建。 性能发生了显著变化,因此我想比较这两个版本以查看发生了什么变化。

有什么想法?........建议?

谢谢

编辑:

是的,最好比较版本控制中的源代码......但我们使用TFS,这不是出于选择,即使使用bolton应用程序,TFS也将源代码控制提升到一个全新的糟糕水平......没有在工作区域中混乱操作很难还原......我只是认为使用DLL方法会更容易......该应用程序也非常庞大......


2
难道不是比较你版本控制存储库中的源代码更好吗? - anon
5
TFS允许您比较同一文件的不同版本,甚至在不同的分支上也没有问题。学会使用您的工具,而不是抱怨它。 - Oded
我认为TFS已经足够强大了。在部署之前,您可以记录新更改[文件/配置级别],可能使用工作项[假设每个检入的更改都有一个关联的更改请求/工作项],这样就可以搜索哪个文件更改已被部署以及出于什么原因。 如果有机会,我会添加TFS标签... - demokritos
1
一个完美的问题被搞砸了,但是建议者需要更加专注。我想建议者需要更加专注。问题和提问者的意图都很清晰。 - Ziggler
5个回答

10

我建议使用Reflector(右键单击程序集->导出)拆卸两个库,然后使用某些合并工具(如WinMerge)比较生成的目录。


2
JetBrains dotPeek和其他反编译工具也可以导出代码。 - user1234567

10

8
今天,使用JetBrains dotPeek也可以完成同样的操作。右键单击加载dll文件,选择“导出到项目”,然后在WinMerge中进行比较。

2

你是否考虑对这两个dll进行性能分析呢?你会发现在第二个dll中花费的时间比第一个更多。这应该会给你一个指示,告诉你出了什么问题。


1
应用程序变慢的更改可能是必要的;通过分析,您将能够在保留这些更改的功能的同时优化代码以消除性能不佳的原因。分析器集成在Visual Studio中 - 在2008年版中,它位于“分析”菜单中。 - Polyfun
是的,这正是我的观点。如果测试套件中没有回归,那么更改肯定是出于某种原因引入的,因此性能分析似乎是正确的方法。 - Francesco

1
如果它是一个用C#编写的dll,那么我建议使用JetBrains的dotPeek进行反编译。它是免费的!反编译后,您可以将代码文本复制到像Notepad++这样的文本编辑器中,以便比较两个文本文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接