我想比较位于不同位置的两个相同的.net dll。因此,我使用System.Reflection.Assembly.LoadFile(filename)
而不是System.Reflection.Assembly.LoadFrom(filename)
加载dll。但是要比较的.Net dll引用了其他程序集(与相应的dll位于同一文件夹中)。使用LoadFile(filename)
然后GetTypes()
加载dll会引发ReflectionTypeLoadException
。我应该如何使用反射加载两个相同的dll以获得它们的类型和&比较?
答案 0 :(得分:2)
使用ReflectionOnlyLoad ot ReflectionOnlyLoadFrom方法
您还需要处理ReflectionOnlyAssemblyResolve以告诉框架在哪里找到依赖项。
答案 1 :(得分:1)
您可以捕获ReflectionTypeLoadException
以查看正确加载的类型列表。有关详细信息,请参阅以下链接:
如果您知道可以找到丢失的程序集的位置,您还可以处理AppDomain.AssemblyResolve
事件,以“帮助”查找和加载所需的依赖项。
答案 2 :(得分:1)