Не удалось загрузить файл или сборку Newtonsoft.Json, версия = 6.0.0.0 при параллельном запуске модульных тестов в VS2017 - PullRequest
1 голос
/ 31 мая 2019

Используя проект VS2017 MVC Web Api, у меня есть несколько модульных тестов, которые проходят хорошо при индивидуальной работе, но при параллельной работе я получаю следующую ошибку.Я хотел бы знать, как можно запустить эти тесты параллельно.

System.Reflection.ReflectionTypeLoadException
HResult = 0x80131602
Сообщение = Невозможно загрузить один или несколько иззапрашиваемые типы.Получите свойство LoaderExceptions для получения дополнительной информации.

Не удалось загрузить файл или сборку 'Newtonsoft.Json, Версия = 6.0.0.0, Культура = нейтральный, PublicKeyToken = 30ad4fe6b2a6aeed' или одна из его зависимостей.Определение манифеста обнаруженной сборки не соответствует ссылке на сборку.(Исключение из HRESULT: 0x80131040) ":" Newtonsoft.Json, версия = 6.0.0.0, культура = нейтральная, PublicKeyToken = 30ad4fe6b2a6aeed

Код, где возникает исключение, приведен ниже в s.GetTypes ():

using Newtonsoft.Json.Linq;

public static class Factory
{
    private static IEnumerable<MyAbstractClass> GetObjects(JObject parsedJson)
    {
        var list = new List<MyAbstractClass>();
        var type = typeof(MyAbstractClass);
        AppDomain.CurrentDomain.GetAssemblies()
            .SelectMany(s => s.GetTypes())
            .Where(p => type.IsAssignableFrom(p) && p.IsClass && !p.IsAbstract)
            .ToList()
            .ForEach(t =>
            {
                var item = (MyAbstractClass)Activator.CreateInstance(t);
                if (item.CanProcess(parsedJson)) list.Add(item);
            });
        return list;
    }
}

В проекте упоминается версия 11.0.0.0 Newtonsoft.Json (поэтому я не уверен, почему она требует версии 6.0.0.0).

Я гарантировал, чтоweb.config имеет:

  <dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
    <bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0" />
  </dependentAssembly>

Во время параллельного запуска один тест (предположительно тот, который запускается первым) проходит успешно, а все остальные завершаются неудачно с идентичным исключением.

1 Ответ

1 голос
/ 07 июня 2019

Я обновил с Newtonsoft.Json версии 11.0.1 до 11.0.2, и это, похоже, исправило мою проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...