c# - 查找所有程序集依赖项,Reflector 样式

标签 c# reflection reflection.emit

我正在使用 Reflection.Emit 动态生成一个程序集,然后保存它。 它包含一个 Type 和一个静态 Main() 方法。

.NET 足以自动引用所需的程序集。 但是,在 Main() 中,有一个从另一个程序集调用的方法,它没有以标准方式被引用。

程序集执行的时候,runtime找这个程序集找不到,这是个问题。

Reflector 可以检测到这一点,并在“依赖”列表下显示这个额外的程序集。 如何使用反射 API 检索这些隐式依赖项?

谢谢

最佳答案

谢谢大家的回复,我已经设法解决了这个问题。

这是发生了什么:

AssemblyBuilder builder = ...//生成程序集

builder.GetReferencedAssemblies(); => 它不会返回对方法主体中使用的程序集的引用,即使我已经调用了 Save() - 它似乎只返回已经加载到内存中的程序集。

Assembly.ReflectionOnlyLoadFrom(filename).GetReferencedAssemblies() => 工作正常

关于c# - 查找所有程序集依赖项,Reflector 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/488166/

相关文章:

ios - 在 Swift 中获取函数名称

.net - 在动态程序集中扩展私有(private)类

javascript - 确认消息框返回错误值

Java - 通过反射访问公共(public)成员

c# - 如何在WebView2控件上创建按钮?

c# - EmitCalli .net 核心替代方案

c# - IL 通过字符串调用方法

c# - 动态模块不支持调用的成员

c# - 如何将 Startup.cs 合并到 Program.cs

c# - 使用XML存储数据,如何使用Entity Framework?