簡體   English   中英

NUnit無法使用字符串鍵名加載dll

[英]NUnit unable to load dll with String Key Name

我有一個項目,其中有一些C#類,這些類是在ant腳本中使用csc構建的。 我還編寫了一些要使用NUnit2.6進行測試的單元測試,如果我在GAC中安裝了DLL,我的測試類和實際類都引用了一個用字符串鍵名(.snk)編譯的DLL。 / i myDLL.dll),一切正常。 當我從gac卸載此DLL時,當我嘗試使用NUnit運行測試時,在構建期間的所有測試都會出現以下錯誤;

Test Error : fromJDynTest1
 [exec]    System.IO.FileNotFoundException : Could not load file or assembly 'myDLL, Version=5.1.0.0, Culture=neutral, PublicKeyToken=c0409b584f86b2d6' or one of its dependencies. The system cannot find the file specified.
 [exec]    at fromJDynTest1()
...
...

有誰知道如何解決這個問題。 讓我知道您是否需要其他信息。

謝謝

-

俊城

當您將要測試的代碼放入GAC中時,看不到有問題的程序集,它可以看到程序集。 您需要確保編譯時正在測試的代碼在bin目錄中具有該程序集(也許在程序集引用上的項目中將copy local設置為false)。

我確定它不是依賴項(在消息中提到)的原因是,當將程序集放置在gac中時,情況已解決。 因為程序集是強命名的,所以不太可能導致此錯誤。

無法通過測試代碼引用程序集,並且該測試代碼沒有引用或存在相同的問題(不在其編譯目錄中)。

如果您發布了項目的實際測試或結構會有所幫助。

.net按以下方式查找程序集:

  1. 通過檢查適用的配置文件(包括應用程序配置文件,發布者策略文件和計算機配置文件)來確定正確的程序集版本。 如果配置文件位於遠程計算機上,則運行時必須首先找到並下載應用程序配置文件。
  2. 檢查程序集名稱之前是否已綁定,如果是,則使用先前加載的程序集。 如果之前失敗,則現在將再次失敗。
  3. 檢查gac。 如果在此找到程序集,則運行時將使用此程序集。
  4. 程序集的探針(如果您在文本編輯器中打開.csproj文件,則將看到提示路徑,它們會嘗試幫助.net查找程序集)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM