2012-05-02 32 views
2

我爲log4net編寫了一個包裝類。這個包裝類可以在asp.net web應用程序中正常工作。現在我正在嘗試使用NUNIT測試我的包裝類方法。 在包裝類項目中,我爲log4net DLL設置了「Copy Local」爲True。 NUNIT項目和包裝類都使用log4net 1.2.10.0。無法單元測試我的log4net包裝類

這個包裝類與我單獨的asp.net web項目正常工作,但一些如何不與我的nunit測試項目一起工作。

當我試圖運行一個基本的測試,我得到以下異常

System.BadImageFormatException:無法加載文件或程序 「log4net的,版本= 1.2.10.0,文化=中立, 公鑰= 692fbea5521e1304'或其依賴項之一。 嘗試加載格式不正確的程序。

我正在內ReSharper的這些測試VS2010

更新與log4net.dll版本1.2.11.0

剛剛更新我的包裝和測試項目,每一件事情開始神奇的工作! !我不知道這個最新的版本如何解決這個問題,其中1.2.10.0保持失敗

+4

您正在加載錯誤的圖像,如使用x86架構或x64反之亦然 –

+0

更新我的問題。爲什麼log4net.dll與asp.net web項目一起工作?請告訴我。 –

+0

如果您從測試項目添加對log4net的引用,它是否仍然會給出錯誤? –

回答

3

看來您正在64位系統上加載32位DLL。你應該構建你的測試DLL,目標是32位體系結構。

過程是在現有的問題描述:Using a 32 bit dll on a 64 bit machine

+0

爲什麼這個包裝類與log4net(32位DLL)與我的asp.net web應用程序一起工作? –

+0

也許在IIS應用程序池(使32位DLL工作)中啓用32位兼容性,或者可能log4net與其位有關,還有另一個DLL或應用程序正在破壞64位鏈。例如,您是否用NUnit獲得了相同的結果來測試不同的環境? –

+0

現在正在工作,請檢查我的更新。 –