2010-08-11 2 views
3

임 프로젝트에서 임 VS2010, C# 4.0, NHibernate와 NUnit을 사용 중이다 .. 데이터베이스 테스트를 할 때 나는 이상한 문제를 발견했다. 테스트를 실행할 때, nunit-agent.exe는 명백한 이유없이 충돌한다.VS2010 + NUnit가 어셈블리를로드하지 못했습니다?

TypeInitializationException : 'NHibernate.ByteCode.Castle.ProxyFactory' 에 대한 초기화가 던진 유형 .. 그때 난 내 테스트를 디버깅 할 때, 나는 TestFixtureSetup 방법에 다음과 같은 예외를 얻을 수 있다는 것을 발견 이후했습니다 예외. 파일 또는 어셈블리를로드 할 수 없습니다. 'Castle.DynamicProxy2, 버전 = 2.1.0.0, 문화 = 중립, PublicKeyToken = 407dd0808d44fbdc'또는 종속성 중 하나입니다. 위치한 어셈블리의 매니페스트 정의는 이 어셈블리 참조와 일치하지 않습니다. (HRESULT에서 예외 : 0x80131040) ":"Castle.DynamicProxy2, 버전 = 2.1.0.0, 문화 = 중립, 는 PublicKeyToken =이 무엇을 찾는 것은 동일

지금, 그것은 나에게 것입니다 407dd0808d44fbdc 것을 발견 한 사람에게?

나는 doublechecked했고 어셈블리는 테스트 프로젝트에서 참조된다. 나는 참고 문헌을 읽으려고했지만, 아무 소용이 없다. .. 어떤 아이디어?

UPDATE2 : 나는 내 모든 프로젝트의 3.5 .NET으로 대상 프레임 워크를 변경 시도하고 모든 테스트는 ..

UPDATE 위의 오류와 함께 실패 지금 .. 다른 사람들이 그나마 일부 시험 작동, I 고객 클래스가 .. 테스트가 완벽하게 잘 실행

public class Customer : IEntity<string> 
{ 
    private readonly string id; 
    public virtual string Id 
    { 
    get { return id; } 
    } 

    public virtual string Name { get; set; } 
    public virtual Address Address { get; set; } 
} 

을하지만 내 제품 클래스에 대한 테스트 :

public class Product : IEntity<string> 
{ 
    private readonly string id; 

    public virtual string Name { get; set; } 
    public virtual decimal Price { get; set; } 

    public virtual string Id 
    { 
    get { return Id; } 
    } 
} 

작동하지 않습니다. (예외가 생겼습니다.) 그리고 재미있는 점은 두 클래스의 테스트가 모든 데이터베이스 액세스 코드를 포함하는 정확히 동일한 기본 클래스를 사용한다는 것입니다.

+1

.net 버전의 프로젝트입니까? .net 버전은 DP2입니까? – Simon

+0

내 프로젝트는 C# 4.0이고 Castle Project에서 최신 DynamicProxy dll을 다운로드했습니다. 내가 알 수있는 한 .NET 2.0 런타임입니다. –

+0

.NET4.0 프로젝트 (실제로 .NET Framework 버전)는 이전 버전의 프레임 워크를 대상으로하는 어셈블리를 참조합니다. 솔루션을 검색하는 데 많은 시간을 투자하지 않았습니다. 아직 .NET 4.0을 사용하지 않기로 결정했습니다. (그럼에도 불구하고 C# 4.0을 사용하는 것을 막을 수는 없습니다). –

답변

2

이 문제가 해결되었습니다. . 2.1.1을 참조하는 동안 Nhibernate가 DynamicProxy 2.1.0을 찾고있는 것처럼 보입니다.

관련 문제