2008-09-12 5 views
22

리플렉션을 사용하여 동일한 어셈블리의 두 가지 버전을로드해야합니다. 동일한 프로세스에서 2 개의 다른 AppDomains에 2 개의 버전을로드 할 수 있습니까?동일한 어셈블리의 다른 버전로드

이전 버전의 앱에서 새 버전으로 일부 데이터 이전이 필요합니다. 이것이 가능한지 또는 2 개의 별도 프로세스를 사용해야하는지 알려주세요.

답변

5

UPDATE : 나는 대답으로 내 결과를 게시 할 예정입니다 생각했다. 리플렉션은 실행 시간 오류 등을 추적하는 개발 노력의면에서 너무 복잡하다는 것을 입증했습니다. 비슷한 상황으로 오래전에 직면했을 때 (Brandon에게 감사드립니다) 2 가지 다른 프로세스를 사용하는 것을 기억합니다.

이것은 계획입니다. 우아하지만 개발 및 문제 해결 측면에서는 쉽지 않습니다. 한 번 일이기 때문에 그냥 작동시켜야합니다.

호스트 응용 프로그램의 새 버전을 갖는 원격 프로세스 (내가 서버라고 부름). 원격 클라이언트에는 이전 버전에 대한 참조가 있습니다.

원격 클라이언트는 마이그레이션에 필요한 데이터로 개체를 인스턴스화하고로드합니다. 이전 개체를 일반적인 직렬화 가능 개체로 변환하고 매개 변수로 서버에 전달합니다.

Remoting Server는 공용 데이터를 사용하여 새 개체를 인스턴스화하고로드합니다. 새로운 형식의 함수를 호출하여 데이터를 유지합니다.

14

당신이 (당신이 표시되는이 아닌)이 당신을 도움이 될 것입니다 디자인 타임에 그 일을하는 경우 :

http://blogs.msdn.com/abhinaba/archive/2005/11/30/498278.aspx

당신이 반사를 통해 동적으로 수행하는 경우이 (여기 경우처럼 보인다) 당신을 도울 수 있습니다

http://infosysblogs.com/microsoft/2007/04/loading_multiple_versions_of_s.html

+2

좋은 링크, 고마워. –

+1

그래 ... 첫 번째는 나에게, 그리고 다른 사람들의 무리에게 "이미 언급 된 어셈블리"에 관한 문제를 준다. 7 살짜리 게시물이며, 해당 게시물의 댓글 필드에 아직 해결이나 설명을 볼 수 없습니다. 그래, 사람들? – Nilzor

+0

InfoSysblog (두 번째 링크)는 이제 죽은 링크입니다. 어떤 제안? –

관련 문제