.NET 2.0을 대상으로 하는 동안 코드에서 확장 메서드를 사용하는 경우 사용자 지정 ExtensionAttribute를 정의해야 합니다. 그러나 더 높은 프레임워크 버전(.NET 3.0~4.0)에서 동일한 라이브러리를 컴파일하면 "ExtensionAttribute가 여러 위치에 정의되어 있습니다." 경고가 발생합니다.
ExtensionAttribute를 포함하려면 조건부 컴파일 지시문을 활용하세요. .NET 2.0을 대상으로 하는 경우에만 해당됩니다. csproj 파일에 DefineConstants 요소를 도입하면 TargetFrameworkVersion 값을 설정할 수 있습니다.
<Project ...> ... <PropertyGroup> ... <DefineConstants Condition=" '$(TargetFrameworkVersion)' == 'v4.0' ">RUNNING_ON_4</DefineConstants> <DefineConstants Condition=" '$(TargetFrameworkVersion)' != 'v4.0' ">NOT_RUNNING_ON_4</DefineConstants> ... </PropertyGroup> ... </Project>
코드에서 #if, #endif 등의 전처리기 지시문을 사용하여 대상을 기반으로 ExtensionAttribute를 조건부로 정의하고 사용합니다. 프레임워크 버전입니다.
#if RUNNING_ON_4 Console.WriteLine("RUNNING_ON_4 is set"); #elif NOT_RUNNING_ON_4 Console.WriteLine("NOT_RUNNING_ON_4 is set"); #endif
이렇게 하면 경고가 제거되고 다음 경우에만 ExtensionAttribute가 포함됩니다. 필요합니다.
위 내용은 다른 .NET Framework 버전을 대상으로 지정할 때 'ExtensionAttribute가 여러 위치에 정의되어 있습니다.' 경고를 처리하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!