【问题标题】:Dependency check依赖检查
【发布时间】:2011-06-09 00:41:53
【问题描述】:

是否有任何方法可以检查 .Net 程序集所需的所有依赖项是否已满足?它在生产服务器上,并且没有安装 Visual Studio。

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

【问题讨论】:

    标签: .net assemblies dependencies


    【解决方案1】:

    这里有一个简单的工具:

    http://www.amberfish.net/

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

    【讨论】:

    • -1 这样我就可以引起您的注意,先生。该网站不再工作,请更新它,先生,然后我可以删除我的反对票。非常感谢。
    • 没有必要投反对票。一个评论就足够了。
    • 哦,对不起。我虽然 cmets 不会通知你。 +1 先生,你真的帮了我。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      融合日志是一种方式,http://www.hanselman.com/blog/DetailingFailedAssemblyLoadsWithTheAssemblyBindingLogViewerTheFusionLogger.aspx

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

      【讨论】:

        【解决方案4】:

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

        我们的实现只是基于Mono.Cecil,它会检查所有程序集是否都存在于它应有的位置,并具有正确的程序集版本。使用 Mono.Cecil 对汇编进行浅读非常快,因此不会减慢启动时间。

        【讨论】:

          猜你喜欢
          • 2011-01-09
          • 2013-10-05
          • 1970-01-01
          • 1970-01-01
          • 2017-07-09
          • 2016-12-25
          • 2016-11-09
          • 2021-08-08
          • 1970-01-01
          相关资源
          最近更新 更多