下面我直接上代码,在ASP.Net Core中获取所有的第三方依赖方法如下:
/// <summary>
/// 获取依赖的Assembly https://lebang2020.cn/details/210331qx5mdsho.html
/// </summary>
/// <param name="assemblyName"></param>
public IList<Assembly> GetDependency(AssemblyName assemblyName)
{
IList<Assembly> list = new List<Assembly>();
AssemblyLoadContext defaultLoadContext = AssemblyLoadContext.GetLoadContext(Assembly.GetExecutingAssembly()) ?? AssemblyLoadContext.Default;
var assembly = defaultLoadContext.LoadFromAssemblyName(assemblyName);
var relatedAssembliesAttrs = assembly.GetCustomAttributes<RelatedAssemblyAttribute>();
foreach (var attr in relatedAssembliesAttrs)
{
var lib = defaultLoadContext.LoadFromAssemblyName(attr.AssemblyFileName);
list.Add(lib);
}
return list;
}
网上搜索到也可以使用 var deps = DependencyContext.Default;
不过还需要自己按程序集的名称再过滤deps一下。欢迎指正。