반응형
.다른 공용 키 토큰을 사용하는 Net 어셈블리 바인딩 리디렉션
공개 키 토큰이 이전 버전에서 null이고 최신 버전에서 설정된 경우 참조된 어셈블리의 다른 버전 간에 어셈블리 바인딩 리디렉션을 수행할 수 있습니까?
예를 들어, 저는 두 개의 어셈블리가 있습니다.
System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
그리고.
System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
다음 어셈블리 바인딩 리디렉션이 As에서 작동하는지 여부.Net 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>
</assemblyBinding>
</runtime>
아니요, 불가능합니다.어셈블리에 동일한 공용 키가 있어야 합니다.상품권.
bindingRedirect 태그에는 이전 버전 및 새 버전 속성만 있으므로 "null" 버전에 대해 알려줄 방법이 없습니다.
하지만 뒤에 있는 진짜 이유는 강력한 이름 메커니즘 때문에 설명됩니다.
AppDomain을 사용할 수 있습니다.AssemblyResolve 이벤트를 수행합니다.저는 이 답변에 샘플 코드를 포함했습니다.
바인딩 리다이렉트를 사용할 수 없는 것처럼 보이지만, 저의 경우 다른 공개 키로 문제를 해결할 수 있었습니다.참조 DLL에서 요청 중인 토큰 값을 수정하여 토큰을 만듭니다.
DLL을 IL로 분해하고 참조를 변경한 후 재조립합니다(키 파일이 없는 경우 문제가 될 수 있음).
(어셈블리를 참조할 때 제 의견을 참조하십시오. 버전 번호를 고집하면서 공개 키 토큰을 무시할 수 있습니까? (즉, 서명/미서명 허용)
언급URL : https://stackoverflow.com/questions/2191296/net-assembly-binding-redirect-with-differing-public-key-tokens
반응형
'source' 카테고리의 다른 글
R - 패키지 로드 메시지 방지 (0) | 2023.06.23 |
---|---|
MongoDB의 배열에 중첩된 하위 문서 제거 (0) | 2023.06.23 |
SQLAlchemy를 사용하여 Oracle 데이터베이스에 연결 (0) | 2023.06.23 |
C NULL이 C++11 Nullptr과 같습니까? (0) | 2023.06.23 |
열 값을 기준으로 참/거짓을 선택하는 방법은 무엇입니까? (0) | 2023.06.23 |