약 4000 MbUnit 테스트로 .NET 3.5 어셈블리를 처리했습니다. 나는 문제없이 mbunit.cons.exe 프로그램을 사용하여이 파일들을 실행하고있다.Gallio/MbUnit에서 실행되는 테스트는 실패합니다. 로드 할 수 없습니다 Castle DynamicProxy
이제 Gallio (mbunit.cons.exe가 XML 보고서를 생성 할 때 '메모리 부족'예외로 시작됨)으로 전환하려고합니다. 이카루스의 테스트를 실행하는 경우
, 그들 대부분은 다음과 같은 예외와 함께 실패 : 시험
System.TypeInitializationException: The type initializer for 'Rhino.Mocks.MockRepository' threw an exception. ---> System.IO.FileLoadException: Could not load file or assembly 'Castle.DynamicProxy2, Version=2.0.3.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) at Rhino.Mocks.MockRepository..cctor()
어셈블리는 동적 프록시를 사용한다. 동적 프록시 어셈블리는 테스트중인 어셈블리와 동일한 디렉토리에 있습니다.
Icarus에서 '힌트 디렉토리', '응용 프로그램 기본 디렉토리'및 '작업 디렉토리'필드에 어셈블리가 포함 된 디렉토리를 넣으려고했지만 결과가 변경되지 않았습니다.
누구나 성공적으로 Gallio와 Dynamic Proxy를 함께 사용 했습니까? 아니면 문제가 무엇인지에 대한 힌트가 있습니까?
그거 알아? 네가 옳아! 나는 버전 2.1.0.0을 가지고있다. 하지만 내가 이해할 수없는 것은 어셈블리가 Gbio와는 독립적으로 MbUnit에서 올바르게 작동하는 이유이다. 두 가지 다른 버전의 Dynamic Proxy에 의존하는 두 가지 타사 DLL (Micro Kernel 및 Rhino Mock)을 사용하고 있습니다. 버전이 곧바로 나올 수 있고, 이것이 작동하는지 알기까지 시간이 걸릴 것입니다. 저를 올바른 길로 인도 해 주셔서 감사합니다. – andypaxo
Rhino.Mocks는 ILMerge를 사용하여 DynamicProxy를 내부화합니다. 따라서 소스에서 자신의 복사본을 만들고 병합을 수행하지 않는 한, 설명하는 동작에 놀랐습니다. –
@ 제프 ... 네, 결국 알아 냈습니다. 우리는 Rhino의 병합되지 않은 릴리스를 사용하고있었습니다. 불행하게도, 병합 된 버전은 모든 것을 내부화하지 않았기 때문에 우리는 그 문제도 해결했습니다 (우리 프로젝트는 Castle Windsor를 사용합니다). ILMerge를 실행하여 내재화 된 모든 것이 잘 작동되도록합니다. – andypaxo