我正在使用 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/