2011-01-23 36 views
1

我越來越對nunit.exe發射嘗試啞例外:NUnit 2.5.8 requries NUnit.Framework 2.5.5運行。怎麼會這樣?!什麼?

System.IO.FileNotFoundException:未能加載文件或程序集「nunit.framework,版本= 2.5.5.10112,文化=中立,公鑰= 96d09a1eb7f44a77 '或它的一個依賴關係。該系統找不到指定的文件。

i.imgur.com/jSm73.png

的NUnit的版本是2.5.9,從MSI軟件包安裝,即不同的版本!將庫設置爲可執行文件的根目錄沒有幫助。 (與2.5.5相同的錯誤)。

怎麼可能?

+0

我可以證實Google沒有發現任何有用的東西嗎? – leppie 2011-01-23 19:35:41

+0

另外,爲什麼您的對話框和「粘貼」顯示不同的版本號?也許你應該清理所有安裝的nunit版本。 – leppie 2011-01-23 19:36:35

+0

@leppie:謝謝!糾正。正在粘貼google – abatishchev 2011-01-23 19:40:13

回答

1

它可以試圖自動加載使用NUnit 2.5.5編譯的測試程序集嗎?

在這種情況下,我寧願把缺少的NUnit dll放在測試程序集中,而不是NUnit亞軍。 (通過使其成爲構建過程的一部分。在VisualStudio中,如果您使用VS,即將NUnit.Framework程序集引用的CopyLocal屬性設置爲true)

3

NUnit應用程序動態加載NUnit框架,因此查看靜態引用的程序集並沒有多大幫助。

使用the Assembly Binding Log Viewer可以提供有關哪些組件要求2.5.5組件的更詳細的信息。

更新:只使用日誌查看器跟蹤由NUnit 2.5.9完成的所有程序集綁定。在沒有立即加載測試程序集的情況下,nunit.framework程序集從不加載。 Nunit核心組件是由課程加載的,但只有2.5.9版本。

1

我有這個問題,當我有「複製本地「以true和nunit引用靜態路徑。當我更新nunit時,我更新了路徑中的dll,但是在實際的項目文件(csproj)中,它仍然包含Version作爲舊版本的參考。手動刪除它,然後重新添加它,修復它。