문제

명확히 해야하는 두 가지 시나리오가 있습니다.

  1. .NET 3.5로 컴파일 된 실행 파일은 .NET 1.1로 컴파일 된 라이브러리를 사용해야하며 라이브러리는 1.1 런타임에 실행해야합니다.

  2. .NET 1.1을 사용하여 컴파일 된 실행 파일은 .NET 3.5로 컴파일 된 라이브러리를 사용해야합니다.

.NET 런타임의 두 버전을로드 할 수 없다는 신뢰할 수있는 소스를 찾을 수 없으며 Microsoft의 문서는이 문제에 대해 매우 모호합니다.

도움이 되었습니까?

해결책

아니요 - CLR을 동일한 프로세스에 두 번로드 할 수 없습니다. 문서를 참조하십시오 CLR 호스팅

이전 버전의 런타임과 마찬가지로 CorbindtoruntImeex 기능은 런타임을 초기화합니다. 로드 할 런타임 버전을 선택할 수 있지만 프로세스는 할 수 있습니다 하나의 버전 만 호스팅합니다.

다른 팁

.NET 4는 동일한 프로세스에서 다른 CLR 버전을 호스팅 할 수 있도록 약속합니다. 나란히 처리 중입니다.

사례 #1의 경우 1.1 런타임에 라이브러리를 호스팅 해야하는 특정 이유 (예 : 변경 사항)가 있습니까? 1.1 컴파일 된 웹 서비스를 통해 라이브러리를 노출시킬 수 있고 대신 실행 파일을 웹 서비스에 가리킬 수 있습니까? (또는 다른 원격 기술, 자체 프로세스로 라이브러리를 얻으려면?)

Case #2의 경우 동일한 프로세스에 상주 할 수 있도록 1.1 앱을 2.0/3.5에서 다시 컴파일 할 수 있습니까?

어쨌든 Rob Walker는 옳았습니다 (그리고 나는 반드시) - 동일한 프로세스에서 런타임의 2 개 버전을 호스팅 할 수는 없습니다. 그래서 당신은 어떻게 든 일해야합니다. 두 경우 모두 소스를 사용할 수 있어야한다고 상상해보십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top