Проект компилируется нормально, тесты выполняются внутри Visual Studio, но nunit-console не может загрузить файл или сборку

У меня есть проект Visual Studio, который работает нормально, и тесты nunit 2 отлично работают в Visual Studio с использованием тестового адаптера и / или сторонних инструментов (например, Code Rush, TestDriven.net и т. Д.)

Однако когда я запускаю nunit-console версии 2.6.4.14350 в том же проекте, он терпит неудачу с указанной ниже ошибкой.

System.IO.FileLoadException: не удалось загрузить файл или сборку System.Web.Mvc, Version = 4.0.0.0, Culture = нейтральный, PublicKeyToken = 31bf3856ad364e35 или одну из его зависимостей. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040) Имя файла: 'System.Web.Mvc, Version = 4.0.0.0, Culture = нейтральный, PublicKeyToken = 31bf3856ad364e35'

Это правда, поскольку я использую System.Web.Mvc Version = 5.2.3, но я все еще не понимаю, что такое сообщение


person cedd    schedule 22.09.2017    source источник


Ответы (1)


Причина, по которой это работает при компиляции, заключается в том, что в файле web.config проекта есть перенаправление привязки.

<dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>

Все участники сборки и тестирования Visual Studio уважают это, но nunit-console - нет.

Запуск msbuild с verbosity:diagnostic покажет предупреждения, когда используется это перенаправление привязки.

Затем вы можете исправить проблему, чтобы все указывало на новейшую версию, и проблема исчезла. Затем вы можете исправить

person cedd    schedule 22.09.2017