2016-01-13 5 views
4

Я пытаюсь разобрать файл JSON в библиотеке классов в рамках решения Web API. Это обычная библиотека классов C#, а не переносная.Newtonsoft.Json версия 8.0.2 Не удалось загрузить файл или сборку Ошибка

Я пробовал каждый ответ mentioned here, но он все еще не работает! Я постоянно получаю ту же ошибку, что:

Не удалось загрузить файл или сборку «Newtonsoft.Json, Version = 8.0.0.0, культура = нейтральной, PublicKeyToken = 30ad4fe6b2a6aeed» или один из его зависимостей. Определение манифеста размещенной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040) ":" Newtonsoft.Json, Version = 8.0.0.0, культура = нейтральной, PublicKeyToken = 30ad4fe6b2a6aeed

Вот код:

public IList<BranchRM> AllBranches() 
{ 
    var result = new List<BranchRM>(); 
    var dataSourcePath = AppDomain.CurrentDomain.BaseDirectory + "Data/branches.json"; 
    var dataAsText = File.ReadAllText(dataSourcePath); 
    if (string.IsNullOrEmpty(dataAsText)) return result; 
    var branchList = JsonConvert.DeserializeObject<List<Branch>>(dataAsText); 
    result = AutoMapper.Mapper.Map<List<BranchRM>>(branchList); 
    return result; 
} 
+0

Вы пытались переустановить 'Newtonsoft.Json' через' Nuget'? – tchelidze

+0

Да, сделав «Обновление-пакет Newtonsoft.Json -Reinstall», все еще не работал. – Ciwan

+0

Вы можете добавить ссылку на 'Newtonsoft.Json.dll' напрямую, без' Nuget'.он находится в том же каталоге, что и «Решение» в папке «Пакеты». – tchelidze

ответ

5

я чинил некоторые старые кода в одном из моих решений для Windows Phone 8 и подумал о обновлении пакетов NuGet и был встречен с той же проблемой.

Комментарий от StivOstenberg here помог мне решить эту проблему.

Это то, что я сделал:

  1. Удален пакет NuGet. Просто нажмите «Удалить» из менеджера NuGet. Обязательно удалите его из каждого проекта в решении отдельно.
  2. Чистое решение. Восстановить решение.
  3. Теперь удалите инструкцию using из всего вашего решения! Может быть сделано с быстрой поиском и заменой для с использованием Newtonsoft.Json в разделе «Цельное решение».
  4. Повторите шаг 2. (Игнорировать ошибки)
  5. Добавить пакет еще раз у менеджера NuGet & build (Ctrl + Shift + B).
  6. Итог (почти), за каждую указанную ошибку, перейдите на конкретную страницу и снова добавьте ссылку.
  7. Повторите шаг 2 и запустите.

Может быть, некоторые избыточные шаги, но это именно то, что я сделал, и это сработало. Надеюсь, это вам тоже поможет.

0

Убедитесь, что есть никаких противоречивых версий Newtonsoft в родительской сборке!

В детской сборке я хотел использовать Newtonsoft.Json.8.0.3.

Ну, проект StartUp - это веб-приложение MVC5. Там я использую BundleTransformer.Less.X.X.X, который имел зависимость от Newtonsoft.Json.8.0.2. Обновление NewtonSoft.Json до 8.0.3 (все тот же вариант сейчас) разрешил это для меня.

Смежные вопросы