2012-11-14 5 views
1

.net 2.0 어셈블리를 참조하려는 .net 4.0 프로젝트가 있습니다. 내가 이해 한대로 this 문서에서 .net 2.0 어셈블리가 4.0 런타임에로드되고 이전 버전과의 호환성이 보장되지 않습니다. 이 경우에 프로세스를 나란히 배치하고 2.0 런타임을로드하는 방법이 있습니까?.net 4.0 응용 프로그램에서 .net 2.0 어셈블리 참조.

답변

2

프로세스 간 병렬 버전은 데이터를 공유하지 않고 독립적으로 실행되는 코드에서만 지원됩니다. 특히 관리 코드를 실행하기 위해 CLR을로드하는 원시 코드의 경우 Explorer와 같은 관리되지 않는 프로그램이 CLR을로드하고 .NET에서 작성된 셸 확장을 지원하면 CLR 버전이 확장 프로그램에서 요청한 버전에 따라 선택되면 CLR 버전 문제에 대한 솔루션입니다. 다른 확장 프로그램이 최신 버전의 CLR을 필요로하는 경우 제대로 작동하지 않습니다. .NET 4의 side-by-side 버전 관리 기능은 각 확장 프로그램이 자체 CLR을 얻는 것을 해결합니다. 데이터 공유는 필요하지 않으며, 이러한 확장은 서로에 대해 알지 못합니다.

분명히 이것은 당신이하려는 것을위한 해결책이 아닙니다. Microsoft는 .NET 4.0을 이전 .NET 릴리스와 가능한 호환되도록 만들기 위해 많은 노력을 기울였으며 .NET 2.0 어셈블리를로드하는 것은 확실히 잘 지원됩니다. 한순간에, 그들은 수정 사항이 오래된 코드로 파괴 될 수있는 몇 가지 오래된 버그를 수정할 기회를 이용했습니다. 기술적으로는 2.0 코드가 그러한 버그의 동작에 의존 할 가능성이 있지만 가능성은 적습니다. 코드를 다시 테스트하면됩니다.

관련 문제