Я искал и нашел похожие вопросы, но данные ответы не работают для меня.Не удалось загрузить файл или сборку 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? Если да, то почему это не происходит во время процесса сборки?
Вы получаете предупреждения во время восстановления пакета? – Tseng
Нет. Все кажется хмурым. –
вы можете проверить журнал привязки сборки, как описано в этом вопросе (http://stackoverflow.com/questions/255669/how-to-enable-assembly-bind-failure-logging-fusion-in-net), чтобы выяснить почему вашему приложению нужна эта конкретная версия. –