Ответ 1
У меня была эта проблема.
Я использовал MvcContrib версии 2.0.95.0 вместе с System.Web.Mvc версии 4.0.30319.
Проблема заключалась в том, что MvcContrib ссылается на более раннюю версию System.Web.Mvc.
Если вы используете более старую версию MvcContrib с Mvc 2, ее должно быть достаточно для загрузки и ссылки на последнюю версию MvcContrib. Если вы используете .NET 4 и Mvc 3, вам необходимо обновить файл App.Config для вашего проекта unit test (возможно, вам придется добавить его) со следующим: -
<configuration>
...
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
....
</configuration>
Имейте в виду, что вам может потребоваться изменить номера версий, если вы используете другую версию MVC. (например, во время этого редактирования вам нужно будет использовать oldVersion="1.0.0.0-5.1.0.0"
и newVersion="5.2.0.0"
).
Вам также может потребоваться добавить это в свой веб-проект. Если вы получаете только исключение в своем тестовом проекте, скорее всего, этот раздел уже существует и корректен в вашем web.config; вы можете скопировать и вставить его оттуда.
Если вы используете Code Analysis, вам также нужно будет увидеть Перенаправление связывания и анализ кода, чтобы он мог уважать перенаправление привязки.