BindingRedirect을 사용하여 YourAssembly.dll 1.1.0.0을 1.2.0.0으로 리디렉션 할 수 있습니다.다른 어셈블리 이름으로 BindingRedirect
어셈블리 이름이 다른 경우 가능한지 아는 사람이 있습니까?
예.
YourAssembly1.dll (버전 1.1)는 YourAssembly2.dll (V2.8)
BindingRedirect을 사용하여 YourAssembly.dll 1.1.0.0을 1.2.0.0으로 리디렉션 할 수 있습니다.다른 어셈블리 이름으로 BindingRedirect
어셈블리 이름이 다른 경우 가능한지 아는 사람이 있습니까?
예.
YourAssembly1.dll (버전 1.1)는 YourAssembly2.dll (V2.8)
가 왜 이런 일을 위해 유니티 또는 Spring.NET과 같은 의존성 주입 프레임 워크를 사용하지로 리디렉션? 어떤 파일을로드 할지를 구성하는 것은 꽤 쉽게 할 수 있습니다.
YourAssembly1.dll (v1.2)을로드하고 YourAssembly2.dll에 기능을 위임하도록 하시겠습니까?
ILDASM 및 ILASM을 사용하여 원래 어셈블리를 디 컴파일, 수정 및 다시 컴파일하여 YourAssembly2.dll을 참조하도록합니다.
나는 머리 속에 떠오르는 생각을 가지고 가능하다는 것을 확인하기 위해 몇 가지 검색을 수행했습니다. Is it possible to modify assembly manifests other than by ILDASM/ILASM hacking? 및 http://forums.asp.net/t/1582934.aspx/1
자신의 응용 프로그램에 YourAssembly1
에 대한 참조가 있기 때문에 가능하지 않습니다.
런타임에서 응용 프로그램을로드 할 때 어셈블리 YourAssembly1.dll
(프로빙 및 버전 리디렉션 적용)을로드하려고 시도하므로 대신 어셈블리 YourAssembly2
을로드 할 수 없습니다.
정확하게 기억한다면 약 4 년 전 AppDomain.AssemblyResolve event을 사용하여 이것을 수행했습니다. AssemblyName 요청을 받고 어셈블리를 반환한다는 아이디어가 있습니다. 어떤 경우에는 런타임에 DynamicAssembly를 생성하고 삽입 할 수있었습니다. 강한 이름 지정이 어떤 영향을 미치는지 잊어 버립니다.
시작 프로세스를 제어 할 수없는 경우 도움이되지 않습니다. – Ryan
질문 해 주셔서 감사합니다. 게시물에 대한 새로운 대답을 시도하십시오. –