gpt4 book ai didi

.net - 显示程序集依赖关系的工具

转载 作者:行者123 更新时间:2023-12-02 04:06:18 24 4
gpt4 key购买 nike

我开始在一个新项目中工作,该项目在一个解决方案中包含许多程序集。我还不熟悉程序集依赖关系,并且很难弄清楚哪个程序集依赖于另一个程序集。

您知道有哪些工具能够显示依赖项列表或更好的可视化图表吗?

任何帮助表示赞赏!

最佳答案

这里有一些快速代码来展示 Cecil Library 的情况 执行此操作:

 

public static void PoC(IEnumerable<AssemblyDefinition> assemblies, TextWriter writer)
{
Console.WriteLine("digraph Dependencies {");
var loaded = assemblies
.SelectMany(a => a.Modules.Cast<ModuleDefinition>())
.SelectMany(m => m.AssemblyReferences.Cast<AssemblyNameReference>().Select(a => a.Name + ".dll"))
.Distinct()
.Select(dllname => {
try { return AssemblyFactory.GetAssembly(dllname); }
catch { return null; } })
.Where(assembly => assembly != null)
.ToList();

loaded.ForEach(a => a.MainModule.FullLoad());

loaded.ForEach(a =>
{
foreach (var r in a.MainModule.AssemblyReferences.Cast<AssemblyNameReference>())
Console.WriteLine(@"""{0}"" -> ""{1}"";", r.Name, a.Name.Name);
} );

Console.WriteLine("}");
}

它生成一个 dot graph file 。在一个相当简单的项目上运行它会导致:

enter image description here

在一个不太简单的项目上运行它会返回以下内容:

enter image description here

建议过滤掉某些程序集(.StartsWith("System.")?)和/或限制搜索深度等。

关于.net - 显示程序集依赖关系的工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9262464/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com