依赖性检查

时间:2011-01-14 08:50:15

标签: .net assemblies dependencies

有没有办法检查.Net程序集所需的所有依赖项是否都已满足?它位于生产服务器上,并且未安装Visual Studio。

这是一个.Net程序集,需要一些GAC:ed组件,这些组件不包含在安装包中。

4 个答案:

答案 0 :(得分:2)

以下是一个简单的工具:

enter image description here

http://www.amberfish.net/

虽然它不完全支持x64。我会接受任何具有类似工具但也支持x64的答案。

答案 1 :(得分:1)

Fusion日志是单向的,http://www.hanselman.com/blog/DetailingFailedAssemblyLoadsWithTheAssemblyBindingLogViewerTheFusionLogger.aspx

另一种方法是在具有相同CPU位数的另一台计算机上安装Windows调试工具,然后将安装文件夹复制到此服务器。然后,您可以在其中使用WinDbg轻松解决此类问题。当然,这对初学者来说并不容易。

答案 2 :(得分:1)

对于NDepend代码库,我们在GAC中没有特定的依赖关系。但是,NDepend会在每次NDepend执行时检查所有程序集是否在安装中部署得很好。这样,如果用户调整了安装(发生这种情况,我们注意到),他会得到一个智能的MessageBox,准确地解释发生了什么以及为什么他应该重新部署NDepend。由于这个技巧,已经节省了很多支持。

我们的实现仅基于Mono.Cecil,它使用正确的程序集版本检查所有程序集是否存在于它应该的位置。使用Mono.Cecil对汇编进行浅读取是如此之快,这样做不会减慢启动时间。

答案 3 :(得分:0)

ILSpy - 一个开源.NET程序集浏览器和反编译器。它也显示了依赖关系。

Reflector的体面替代品,不再免费。