2010-05-21 6 views
2

3.5 프레임 워크에 대해 .net 어셈블리 빌드가 있습니다. 내가 설정 방법의 첫번째 재정의를 사용하는 내 asp.net 2.0 웹 응용 프로그램에서이 어셈블리를 참조하고있어asp.net 2.0 웹 응용 프로그램에서 .net 3.5 어셈블리 사용

public class Foo { 
    public T Set<T>(T value); 
    public T Set<T>(Func<T> getValueFunc); 
} 

(Func을 제외) :이 어셈블리는 두 가지 방법 오버라이드와 클래스 푸있다.

하지만 빌드에 내가 오류가 나는 System.Func 대리자를 사용하는 System.Core를 참조해야한다는 ...하지만이 유형을 사용하지 않는 얻을 ...

는이 문제를 해결하기위한 해결 방법이 있습니까 ?

추신 : 3.5 프레임 워크를 타겟팅하는 웹 응용 프로그램을 변환 할 수있는 옵션이 없습니다.

+0

참조 된 어셈블리의 소스 코드에 액세스 할 수 있습니까? –

+0

예, 있습니다. 하지만 그것은 3.5를 내부적으로 사용하는 커다란 라이브러리이므로 2.0에 대해 다시 컴파일하는 것은 옵션이 아닙니다. –

답변

2

.NET 3.5 (또는 4.0)을 사용하도록 웹 앱을 변환하십시오. 그 후에 모든 것이 잘 될 것입니다.

여기, .NET 2.0에 충실해야하는 경우

내 아이디어 DLL에 검색하고 수동으로 추가하여 System.Core 어셈블리를 참조하는

  • 시도이다. .NET Framework 3.5는 2.0과 동일한 CLR을 사용하므로 참조가 엉망이 아닌 경우 작동합니다. (예 : 추가 할 수없는 .NET 3.5의 항목)
+0

여기에 설명 된대로 System.Core를 참조하여 해결했습니다. (http://abdullin.com/journal/2008/12/23 /how-to-use-net-35-features-and-c-30-syntax-in-net-20.html). 내 시스템의 어셈블리를 탐색하여 참조를 추가하는 데 실패했습니다 ... –

+0

@masterik - 당신이 해결할 수있어서 기쁩니다. – Venemo

-1

웹 응용 프로그램을 .net 3.5로 업그레이드하여이 작업을 수행하거나 가능한 경우 .net 2.0을 대상으로 어셈블리를 다시 컴파일해야합니다.

0

코드에서 특정 오버로드를 호출하지 않는다고해서 컴파일러에서 무시할 수있는 것은 아닙니다. 컴파일러가 무엇인지 알아야합니다. System.Core를 참조하거나 .net 3.5를 사용하도록 프로젝트를 변환해야합니다.

관련 문제