.NET Framework 대상 지정 오류 문제 해결

Visual Studio를 사용하면 .NET Framework 4 Client Profile이라고 하는 간단한 .NET Framework 런타임을 배포할 수 있습니다. 이 런타임에는 .NET Framework 4에 포함된 이진 파일의 하위 집합이 들어 있습니다. .NET Framework 4 Client Profile을 사용하여 더 작은 .NET Framework 라이브러리를 응용 프로그램 사용자에게 배포할 수 있으며 사용자는 자신의 시스템에 전체 .NET Framework 4가 설치되지 않은 경우에도 이 응용 프로그램을 실행할 수 있습니다.

응용 프로그램이 특정 프로필을 대상으로 하는 경우 해당 프로필의 일부가 아닌 어셈블리를 참조하려고 하면 오류가 발생할 수 있습니다. 일반적인 오류는 다음과 같습니다.

  • "namespace" 네임스페이스에 "name" 형식 또는 네임스페이스 이름이 없습니다. 어셈블리 참조가 있는지 확인하십시오.

  • "typename" 형식이 정의되지 않았습니다.

  • "assembly" 어셈블리를 확인할 수 없습니다. 해당 어셈블리가 "profile" 프로파일의 일부로 나열되지 않습니다.

이러한 오류는 다양한 작업으로 인해 발생할 수 있습니다. 이 항목에는 오류의 발생 원인과 문제 해결 방법에 대한 설명이 포함되어 있습니다.

.NET Framework 4 Client Profile에 대한 자세한 내용은 .NET Framework Client Profile방법: 특정 .NET Framework 버전 또는 프로필을 대상으로 지정을 참조하십시오.

Client Profile에 포함되지 않은 어셈블리를 참조한 경우

응용 프로그램에서 .NET Framework 4 Client Profile에 포함되지 않은 어셈블리 또는 종속된 어셈블리에 있는 기능을 참조하려는 경우 런타임 오류 메시지가 나타날 수 있습니다. 정확한 메시지 내용은 참조되는 기능의 위치에 따라 달라집니다. 이러한 오류를 제거하려면 프로젝트에서 잘못된 어셈블리 참조를 제거하거나 프로젝트에서 .NET Framework 4 Client Profile 하위 집합 라이브러리가 아닌 전체 .NET Framework 버전 4를 대상으로 하도록 설정합니다.

다른 .NET Framework 버전을 대상으로 하는 프로젝트 또는 어셈블리를 참조한 경우

다른 .NET Framework 버전을 대상으로 하는 프로젝트 또는 어셈블리를 참조하는 응용 프로그램을 만들 수 있습니다. 예를 들어 .NET Framework 4 Client Profile을 대상으로 하는 응용 프로그램을 만드는 경우 해당 프로젝트에서 .NET Framework 버전 2.0을 대상으로 하는 어셈블리를 참조할 수 있습니다. 그러나 이전 버전의 .NET Framework를 대상으로 하는 프로젝트를 만드는 경우에는 해당 프로젝트에서 .NET Framework 4 Client Profile 또는 .NET Framework 4를 대상으로 하는 프로젝트나 어셈블리에 대한 참조를 설정할 수 없습니다. 오류를 해결하려면 응용 프로그램의 대상 프로필이 응용 프로그램이 참조하는 프로젝트 또는 어셈블리의 대상 프로필과 호환되는지 확인하십시오.

다른 .NET Framework 버전으로 프로젝트 대상을 변경한 경우

응용 프로그램의 .NET Framework 대상 버전을 변경하면 일부 참조가 변경되지만 몇 가지 수동 업데이트도 수행해야 합니다. 예를 들어 .NET Framework 4 Client Profile에 의존하는 리소스나 설정이 있는 응용 프로그램을 만든 다음 .NET Framework 3.5 SP1을 대상으로 하도록 응용 프로그램을 변경하면 앞서 언급한 오류 중 하나가 표시될 수 있습니다.

응용 프로그램 설정을 통해 해결하려면 솔루션 탐색기에서 모든 파일 표시를 클릭한 다음 Visual Studio XML 편집기에서 app.config 파일을 편집합니다. 설정에서 버전을 .NET Framework 버전과 일치하도록 변경합니다. 예를 들어 버전 설정을 4.0.0.0에서 2.0.0.0으로 변경할 수 있습니다. 리소스가 추가된 응용 프로그램의 경우에도 마찬가지로 솔루션 탐색기에서 모든 파일 표시를 클릭하고 내 프로젝트(Visual Basic) 또는 속성(C#)을 확장한 다음 Visual Studio XML 편집기에서 Resources.resx 파일을 편집합니다. 버전 설정을 4.0.0.0에서 2.0.0.0으로 변경합니다.

응용 프로그램에 아이콘 또는 비트맵과 같은 리소스가 있거나 데이터 연결 문자열과 같은 설정이 있는 경우 프로젝트 디자이너설정 페이지에서 모든 항목을 제거한 다음 필요한 설정을 다시 추가하여 문제를 해결할 수도 있습니다. 자세한 내용은 프로젝트 디자이너, 설정 페이지를 참조하십시오.

프로젝트의 대상을 다른 .NET Framework 버전으로 변경한 후 참조가 확인되지 않는 경우

일부 경우 프로젝트의 대상을 다른 .NET Framework 버전으로 변경하면 참조가 올바르게 확인되지 않을 수 있습니다. 이는 일반적으로 어셈블리에 대한 참조가 명시적으로 정규화되었기 때문입니다. 확인되지 않는 참조를 제거한 후 다시 프로젝트에 추가하여 이 문제를 해결할 수 있습니다. 또는 프로젝트 파일을 편집하여 다음 형식의 참조를 제거할 수 있습니다.

<Reference Include="System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" />

그런 다음 이를 다음과 같은 간단한 형식으로 바꿀 수 있습니다.

<Reference Include="System.ServiceModel" />

참고

프로젝트를 닫고 다시 연 후에는 다시 빌드 작업도 수행하여 모든 참조가 올바르게 확인되도록 해야 합니다.

참고 항목

작업

방법: 특정 .NET Framework 버전 또는 프로필을 대상으로 지정

개념

.NET Framework Client Profile

기타 리소스

특정 .NET Framework 버전 또는 프로필을 대상으로 지정