2009-10-30 3 views
1

몇 가지 사소한 변경으로 NH 2.0.1을 분기 시켰기 때문에 문제가 없습니다. 우리의 2.1.0으로의 업그레이드는 다른 NH에 대해 빌드 된 NHibernate.Caches.SysCache에 대한 dll 문제를 가지고 있습니다. 나의 주요 질문은이 문제를 어떻게 잘 다룰 것인가? 어떤 유형의 어셈블리 매핑을 사용할 수 있습니까? 아니면 빌드 할 때 사용할 수있는 소스 코드가 있습니까? 여기 NHibernate.Caches.SysCache 버전은 Nhibernate 2.1.0 브랜치와 관련된 문제입니다.

오류입니다 : 는 "파일이나 어셈블리를로드 할 수 없습니다 '= 2.1.0.4000, 문화 = 중립, 버전 자 NHibernate를 PublicKeyToken = aa95f207798dfdb4'또는 해당 종속성 중 하나에 위치 어셈블리의 매니페스트 정의가 어셈블리를 일치하지 않습니다. 참조 (HRESULT에서 예외 : 0x80131040) ".

web.config에서 참조를 주석 처리하면 다른 방식으로 작동합니다. 당신의 Web.config에서

답변

4

넣어이 : 당신이 당신의 빌드에 준 버전 X.X.X.X을 교체하여

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
      <assemblyIdentity name="NHibernate" 
           publicKeyToken="aa95f207798dfdb4" 
           culture="neutral" /> 
      <bindingRedirect oldVersion="2.1.0.4000" 
          newVersion="X.X.X.X" /> 
     </dependentAssembly> 
    </assemblyBinding> 
</runtime> 

.

참고 : 새 버전의 어셈블리에 동일한 키를 사용하여 서명하지 않으면 바인딩 리디렉션이 작동하지 않습니다. 이 경우 사용자 정의 NHibernate 빌드에 대해 NHibernate.Caches.SysCache을 다시 컴파일 할 수 밖에 없습니다.


UPDATE :

당신이 NH의 새 버전이있다

+0

개인 키로 서명해야한다는 생각이 들지 않았습니다. 그게 내가 필요한 모든 것, 멋진 일. – Trent

관련 문제