2017-01-11 46 views
2

我已經搜索並找到類似的問題,但給出的答案不適用於我。單元測試失敗,'無法加載文件或程序集'System.Net.Http,版本= 4.1.1.0'

這是特定於.NET Core的。我在寫單元測試的xUnit和起訂量和我越來越

拋出的異常的錯誤:「System.IO.FileNotFoundException」

其他信息:無法加載文件或程序 「系統.Net.Http,Version = 4.1.1.0,Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a'或其依賴項之一。 系統找不到指定的文件。

我的測試項目的project.json文件如下所示:

{ 
    "version": "1.0.0", 
    "buildOptions": { 
     "debugType": "portable" 
    }, 
    "dependencies": { 
     "xunit": "2.2.0-beta2-build3300", 
     "dotnet-test-xunit": "2.2.0-preview2-build1029", 
     "My.App.DataAccess": "1.0.0", 
     "My.App.Domain": "1.0.0", 
     "My.App.Services": "1.0.0", 
     "My.App.WebApi": "1.0.0", 
     "Microsoft.AspNetCore.TestHost": "1.1.0", 
     "Moq": "4.5.30" 
    }, 
    "testRunner": "xunit", 

    "frameworks": { 
     "net462": {} 
    } 
} 

只有單元測試失敗。主應用程序工作得很好。我試過手動強制System.Net進入project.json,但它堅持要安裝4.3.0。我不確定它在哪裏認爲它需要4.1.1.0。

編輯:我注意到,如果我從WebApi項目斌複製System.Net.Http.dll到測試項目斌一切工作正常。現在,測試項目本身不使用System.Net.Http命名空間中的任何內容 - 只有在WebApi項目中測試的方法才引用它。

測試項目是否應該將System.Net.Http.dll複製到它的bin文件夾中?如果是這樣,爲什麼在構建過程中不會發生這種情況?

+0

包恢復過程中是否收到任何警告? – Tseng

+0

沒有。一切看起來都很古怪。 –

+0

您可以按照本[問題](http://stackoverflow.com/questions/255669/how-to-enable-assembly-bind-failure-logging-fusion-in-net)中所述檢查程序集綁定日誌,以弄清楚爲什麼你的應用需要這個特定版本 –

回答

相關問題