2010-07-08 5 views
0

.net 3.5 C# 프로젝트가 .net 4.0 어셈블리를 참조하고 컴파일 할 수 있습니까? 런타임은 어떻게됩니까? 3.5로 컴파일/실행하는 방법은 무엇입니까?.net 4.0 migration

편집 : 특히 제 3 자 .net 어셈블리가 있습니다. 그것은 확장 포인트가 있습니다 : 나는 app.config에 내 DLL을 등록하고 나를 (아마도 반사를 통해) 호출합니다. .net 4.0에서 dll을 구현할 수 있습니까? CLR 버전을 선택했을 때, 메인 exe가 올 때 또는 dll이 어떤 버전을 필요로 할 때?

답변

0

.net 4.0 응용 프로그램이되고 .net 4.0 기능을 사용하려면 .net 4.0 응용 프로그램을 te 4.0 프레임 워크에서 대상 지정해야합니다. 이것은 (사용자의 PC에서 .net 4.0을 요구하는 것을 제외하고) 아무것도 망치지 말아야하지만 .net 4.0 기능을 사용할 수있게 해줍니다.

.net 4.0 앱을 retouch 대상으로 지정할 수 있습니다. .net 4.0 기능을 사용하지 않는 경우. 그렇다면 .net 3.5로 작업하기 위해 코드의 해당 부분을 다시 작성해야합니다.

특정 .net 버전을 대상으로 지정하는 것은 간단합니다. 프로젝트 속성의 드롭 다운 목록에서 버전을 선택하면됩니다.

+0

_ 'net 4.0 응용 프로그램을 3.5로 retarget 할 수 있습니다. .net 4.0 기능을 사용하지 마십시오. '이것은 단순히 컴파일러 트릭이 아닌 기능을 사용하지 않음을 의미합니다. 나는 그 (것)들에게 간계이라고 칭하기를위한 말썽에서, 그러나 잘 오. 간단한 예제는 C#의 선택적 매개 변수입니다. – Marc

+0

감사합니다. 내 편집 –

+0

을 보시기 바랍니다. @Yaron : 각 어셈블리가 다른 버전의 CLR에 독립적으로 "링크"할 수 있어야합니다. 그러나 나는 그 대답을 알지 못하기 때문에 그것을 확인할 수 없다. 왜 그냥 시험해보고 보지 않으시겠습니까? –

5

아니요, 4.0 어셈블리를 참조하려면 4.0으로 업그레이드해야합니다.

+0

감사합니다. 내 편집 –

0

특정 상황에 따라, 타사 응용 프로그램이 <requiredRuntime> 구성 요소를 사용하여 프레임 워크 4.0 버전을로드하게 할 수 있습니다. 이로 인해 4.0 버전의 프레임 워크가로드되고 DLL에서 4.0 기능을 사용할 수 있습니다.

또한 .NET 4.0에는 In-Process Side-by-Site이라는 기능이 있습니다. 나는이 기능을 직접 들여다 본 적이 없지만 상황에 따라 유용 할 수도 있습니다 ...