2010-12-17 110 views
1

我使用inhouse工具来检索有关我自己管理的dll的一些信息。对于加载dll我使用System.Reflection.Assembly.LoadFile。对于一些DLL,我得到了异常:System.Reflection.Assembly.LoadFile失败(建议?)

“ClassName”:“System.NullReferenceException”; “消息”:“未将对象引用设置为对象的实例。”;

但是这些DLL运行良好,它们可以在应用程序中加载。所有依赖都在同一个目录中。任何建议?

非常感谢!

P.S.这种例外发生在方法System.Reflection.Assembly.LoadFrom;

+3

你能否包含异常堆栈跟踪? – Luca 2010-12-17 14:38:06

+0

这是Winforms吗? – SwDevMan81 2010-12-17 14:40:28

回答

2

LoadFile将程序集加载到当前AppDomain中执行。 (一些)静态构造函数可以被执行并且自定义类属性被评估。在这些情况下,您的一些代码可能会被执行;因此NullReferenceException可能来自您的代码。 StackTrace异常可能会揭示源代码。

编辑:如果您想要获取关于程序集的信息而不执行其静态构造函数或计算属性,可以查看Assembly.ReflectionOnlyLoad *方法。

1

嗯......我不确定这是否有意义,但也许他们是非托管DLL或缺少所需的文件权限?

+1

这将导致不同的例外。 – SLaks 2010-12-17 14:38:42