2017-09-22 12 views
0

Visual Studio 프로젝트를 가지고 있는데, 빌드가 잘되어 있고 Visual Studio 내에서 nunit 2 테스트가 잘 실행됩니다. 테스트 어댑터 및/또는 타사 도구 (예 : Code Rush, TestDriven.net 등)를 사용하십시오.프로젝트가 잘 컴파일되고 Visual Studio 내에서 테스트가 실행되지만 "파일 또는 어셈블리를로드 할 수 없습니다 ..."

그러나 동일한 프로젝트에서 nunit-console 버전 2.6.4.14350을 실행하면 다음 오류와 함께 실패합니다.

System.IO.FileLoadException는 : 파일 또는 어셈블리 'System.Web.Mvc, 버전 = 4.0.0.0, 중립 문화 = PublicKeyToken = 31bf3856ad364e35'또는 해당 종속성 중 하나를로드 할 수 없습니다. 어셈블리의 매니페스트 정의에 일치하는 어셈블리 참조가 일치하지 않습니다. (HRESULT에서 예외 : 0x80131040) 파일 이름 : 'System.Web.Mvc을, 버전 = 4.0.0.0, 문화 = 중립, PublicKeyToken = 31bf3856ad364e35'

내가 System.Web을 사용하고 같이 이것은 사실이다 .Mvc 버전 = 5.2.3,하지만 난 여전히 메시지에 대해 혼란 스럽네요

답변

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은 그렇지 않습니다.

verbosity:diagnostic으로 실행하면이 바인딩 리디렉션이 사용될 때 경고가 표시됩니다.

그러면 모든 것이 최신 버전을 가리키고 문제가 없어지도록 문제를 해결할 수 있습니다. 그러면

을 수정할 수 있습니다.