2017-01-11 17 views
2

Я искал и нашел похожие вопросы, но данные ответы не работают для меня.Не удалось загрузить файл или сборку System.Net.Http, Version = 4.1.1.0 '

Это относится к .NET Core. Я пишу модульных тестов с XUnit и Moq, и я получаю ошибку

Exception брошенную: «» System.IO.FileNotFoundException

Дополнительная информация: Не удалось загрузить файл или сборку «System .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.

EDIT: Я заметил, что если я скопирую файл System.Net.Http.dll из мусорного контейнера проекта WebApi в тестовый бит проекта, все будет хорошо. Теперь сам тестовый проект ничего не использует из пространства имен System.Net.Http - только те методы, которые тестируются в проекте WebApi, ссылаются на него.

Должен ли проект Test иметь файл System.Net.Http.dll, скопированный в его папку с bin? Если да, то почему это не происходит во время процесса сборки?

+0

Вы получаете предупреждения во время восстановления пакета? – Tseng

+0

Нет. Все кажется хмурым. –

+0

вы можете проверить журнал привязки сборки, как описано в этом вопросе (http://stackoverflow.com/questions/255669/how-to-enable-assembly-bind-failure-logging-fusion-in-net), чтобы выяснить почему вашему приложению нужна эта конкретная версия. –

ответ

0

Это, вероятно, связано с этим: https://github.com/dotnet/corefx/issues/9846

Я рекомендую обновление до VS 2017 года и сделать связывание перенаправления для System.Net.Http сборки.

+0

. Как мы делаем переадресацию привязки в новой структуре csproj? Я не получаю никаких хитов для поиска в Интернете. – Dagrooms