我正在使用Visual Studio 2010和WinForms,.NET 4.0(C#)。我正在构建一个包含很多DLL的应用程序(150)。当我提供应用程序给我的客户,它是:在.NET中测试DLL之间的兼容性
- 的可执行文件(.exe)
- .dll文件(.dll文件)
每个DLL是关系到应用程序的模块,用于例如:
- Ado.dll(提供访问数据库)
- AccesManagement.dll(此模块允许在应用程序来管理用户)
- Import.dll(该模块允许用户将数据导入到应用程序)
- 等
当我的客户发现应用程序中的一个bug,我改正它,我向他提供受影响的DLL(为了避免他测试所有的应用程序)。它可以是例如导入Dll。
事情是,在一些交付后,我们可以在Dll(例如在一个新的DLL中不再存在的方法)之间存在兼容性问题。为了避免这个问题,我想找到一个能够检查不同DLL之间兼容性的工具。
我想是这样的:进口之间的错误:
- 我指定程序的目录来分析(可执行文件+ DLL)
- 我启动了分析
- 程序告诉我,例如.dll和Ado.dll,在Import.dll中有一个xxx类,期望在Ado.dll的类xxx中有一个名为xxx的方法
我发现了一些工具可以比较两个版本的Dll和p rovide添加和删除成员(Libcheck,ApiChange),但这对我来说太复杂了,因为有很多变化。
你基本上是寻找一种依赖性分析工具。在将这些修改过的程序集发送给客户端之前,我建议您在对某些程序集进行更改时,对应用程序进行更彻底的测试。 – Bernard 2012-02-17 13:41:21
是不是你所说的称为接口?你应该依赖于接口而不是具体的实现。 – rene 2012-02-17 13:43:32
看看[在.NET中API断开更改的明确指南](http://stackoverflow.com/questions/1456785/a-definite-guide-to-api-breaking-changes-in-net)。我不知道有任何工具可以测试这些,但是意识到可以做什么和不可以做什么应该可以帮助您在将来避免这些问题。 – Justin 2012-02-17 13:43:58