0

MVC 3 RC 프로젝트에서 Combres을 사용하고 있으며 웹 서버에 배포 할 때 어셈블리 바인딩 오류가 발생합니다.왜 Combres는 이전 버전의 System.Web.Mvc를 찾고 있습니까?

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

<%= Html.CombresLink("commonJs") %>

내 개발 기계, GAC에 MVC 1과 2 어셈블리를 가지고있다. 웹 서버에는 GAC에 MVC 버전이 없으며 MVC 3 어셈블리를 bin-deployment하고 있습니다. 내 프로젝트 참조 버전 System.Web.Mvc의 3.0.0.0, 나는 내 Web.config의에서 다음과 같은 부분이 있습니다

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
      <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
      <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly xmlns=""> 
      <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
      <bindingRedirect oldVersion="2.0.0.0" newVersion="3.0.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
</runtime> 

내가이 절 대신 버전 3.0.0.0을 사용하는 Combres 말할 것이라고 생각했다. 내 응용 프로그램이 참조를 해결하지 못하는 이유는 무엇입니까?

답변

2

나는 바인딩 리다이렉션 체인이 될 것이라고 생각하지 않는다. 당신은 어딘가에서 1.0에 대한 참조를 가지고 있고, 당신의 config는 그것이 존재하지 않는 2.0을로드하도록 지시한다.

oldVersion이 "1.0.0.0-2.0.0.0"으로 설정된 바인딩 리디렉션이 하나만 필요합니다.

관련 문제