2010-12-17 70 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