我正在使用Reflection.Emit动态生成程序集,然后保存它.它包含一个Type和一个静态Main()方法.
.NET足以自动引用所需的程序集.但是,在Main()中,有一个来自另一个程序集的方法的调用,它不会以标准方式引用.
执行程序集时,运行时会查找此程序集但无法找到它,这是一个问题.
Reflector可以检测到这一点并在"依赖"列表下显示这个额外的组件.如何使用Reflection API检索这些隐式依赖项?
谢谢
感谢回复人员,我设法解决了这个问题.
这是发生的事情:
AssemblyBuilder builder = ... //生成程序集
builder.GetReferencedAssemblies(); =>它不会返回对方法体中使用的程序集的引用,即使我已经调用了Save() - 它似乎只返回已经加载到内存中的程序集.
Assembly.ReflectionOnlyLoadFrom(filename).GetReferencedAssemblies()=>工作正常
你有没有尝试过Assembly.GetReferencedAssemblies?它返回引用的程序集的AssemblyName.