다음을 통해 공유


웹 사이트에 대한 .NET Framework 대상 지정

업데이트: 2007년 11월

Visual Studio 2008의 다중 대상 지정 기능을 사용하면 웹 사이트 또는 웹 서비스의 대상으로 사용할 .NET Framework 버전을 지정할 수 있습니다. 이를 통해 Visual Studio 2008에서 프로젝트에 새 어셈블리 종속성을 실수로 만들지 않고 기존 및 새 Visual Studio 2008 웹 프로젝트를 수정할 수 있습니다. Visual Studio 2008을 사용하면 .NET Framework 2.0, .NET Framework 버전 3.0 또는 .NET Framework 버전 3.5 서비스 팩 1를 배포할 수 있는 웹 사이트를 빌드할 수 있습니다. Visual Studio 2008은 사용자가 프로젝트에 대해 지정하는 .NET Framework 버전에서 사용할 수 있는 기능만 프로젝트에 사용되도록 하여 이를 가능하게 합니다.

이 항목에서는 다음에 대해 설명합니다.

시나리오

Visual Studio 2008의 다중 대상 지정 기능을 사용하면 웹 사이트의 대상을 특정 .NET Framework 버전으로 지정할 수 있습니다. 예를 들어 WCF(Windows Communication Foundation)에서 지원하는 보안 기능을 사용하는 ASP.NET 웹 응용 프로그램을 만들어야 할 수 있습니다. 응용 프로그램에 LINQ(통합 언어 쿼리)에 대한 지원이 필요하지 않은 경우 .NET Framework 버전 3.0을 대상으로 지정할 수 있습니다.

맨 위로 이동

다중 대상 지정 기능

Visual Studio 2008의 다중 대상 지정 기능은 다음과 같습니다.

  • 새 웹 사이트를 만들 때 .NET Framework 버전을 선택할 수 있습니다.

  • 웹 사이트를 열 때 Visual Studio는 .NET Framework 버전을 감지할 수 있습니다.

    Visual Studio가 웹 사이트에 .NET Framework 버전 2.0이 사용된다는 것을 감지할 경우 Visual Studio는 .NET Framework 버전 3.5 서비스 팩 1를 대상으로 지정할 수 있는 옵션을 제공합니다.

  • Visual Studio는 현재 대상으로 지정된 버전의 .NET Framework에 적용되지 않는 기능을 필터링합니다. 여기에는 메뉴 옵션, 도구 상자 개체, 컴파일 프로세스 및 어셈블리 참조가 포함됩니다.

  • 프로젝트 속성을 사용하여 대상 .NET Framework 버전을 선택할 수 있습니다.

.NET Framework 라이브러리

Visual Studio에서는 다음 버전의 .NET Framework를 대상으로 지정할 수 있습니다.

  • .NET Framework 버전 2.0 Microsoft Visual Studio 2005와 함께 포함된 .NET Framework의 버전

  • **.NET Framework 버전 3.0 ** 운영 체제와 함께 포함된 .NET Framework의 버전. 이 .NET Framework 버전에서는 WPF(Windows Presentation Foundation), WCF(Windows Communication Foundation), Windows CardSpace 및 Windows Workflow Foundation이 지원됩니다.

  • **.NET Framework 버전 3.5 **Visual Studio의 기본값으로 포함된 .NET Framework 버전. 이 .NET Framework 버전에서는 ASP.NET AJAX 및 LINQ(통합 언어 쿼리)가 지원됩니다.

맨 위로 이동

배경

Visual Studio 2008에서는 단일 개발 환경에서 여러 버전의 .NET Framework를 대상으로 지정할 수 있습니다. Visual Studio 2005 및 이전 버전에서는 단일 버전의 .NET Framework를 대상으로 지정했습니다. 서로 다른 버전의 .NET Framework에 대한 응용 프로그램을 작성하려는 개발자는 side-by-side 버전의 Visual Studio를 실행하여 해당 작업을 수행했습니다. 또한 런타임 종속성 및 이전 버전과의 호환성이 다중 대상 지정과 관련된 핵심 고려 사항이었습니다.

Visual Studio 2008에서는 코드를 전혀 변경하지 않고 Visual Studio 2005 웹 사이트를 열 수 있습니다. 그러나 웹 사이트에 대한 프로젝트 파일이 업그레이드됩니다. 기본적으로 Visual Studio 2005 프로젝트는 계속해서 .NET Framework 2.0을 대상으로 지정합니다. 그러나 이후 버전의 .NET Framework에 포함된 새 기능을 활용하기 위해 기존 프로젝트에 대한 대상 프레임워크 버전을 전환할 수 있습니다.

최신 .NET Framework 기능은 새 어셈블리에 포함됩니다. 이전 버전의 .NET Framework에 대한 어셈블리는 변경되지 않습니다.

새 웹 사이트 만들기

새 웹 사이트를 만들 때 프로젝트의 대상으로 사용할 .NET Framework의 버전을 지정할 수 있습니다. 새 Visual Studio 프로젝트는 최신 버전의 .NET Framework를 대상으로 자동 지정합니다.

다음 절차에서는 지정된 .NET Framework 버전을 대상으로 사용하는 새 웹 사이트를 만드는 방법에 대해 설명합니다.

새 웹 사이트를 만들고 .NET Framework 대상을 지정하려면

  1. Visual Studio의 파일 메뉴에서 새 웹 사이트를 클릭합니다.

    새 웹 사이트 대화 상자가 표시됩니다.

  2. 프레임워크 버전 목록에서 프로젝트의 대상으로 사용할 .NET Framework 버전을 선택합니다.

    대화 상자에 표시되는 템플릿 목록은 선택하는 프레임워크를 기반으로 필터링됩니다.

  3. Visual Studio에 설치되어 있는 템플릿에서 ASP.NET 웹 사이트와 같은 웹 사이트 유형을 선택합니다.

  4. 확인을 클릭합니다.

기존 Visual Studio 2005 웹 사이트 열기

Visual Studio 2008을 사용하면 프로젝트를 최신 버전의 .NET Framework로 업그레이드하지 않아도 이전 버전의 Visual Studio에서 만든 프로젝트나 웹 사이트를 열 수 있습니다. Visual Studio 2005 프로젝트를 편집, 컴파일, 빌드, 디버깅 및 저장할 수 있습니다.

이후 .NET Framework 버전을 대상으로 지정하지 않고 기존 Visual Studio 2005 프로젝트를 열 수 있습니다. Visual Studio 2008에서 웹 응용 프로그램이 처음 열리면 .NET Framework 버전 3.5 서비스 팩 1를 웹 사이트의 대상으로 지정하라는 메시지가 표시됩니다. 대상 프레임워크를 변경하지 않으려면 아니요를 클릭합니다.

참고:

원격 웹 사이트를 열 경우에는 Visual Studio 2008이 원격 서버에 설치된 .NET Framework 버전에 따라 사용 가능한 버전을 필터링하지 않습니다.

기존 웹 사이트에 대한 대상 .NET Framework 버전 업그레이드 또는 다운그레이드

다음 절차에서는 최신 또는 이전 버전을 대상으로 지정하기 위해 기존 프로젝트에 대한 .NET Framework의 버전을 변경하는 방법에 대해 설명합니다.

최신 버전의 .NET Framework로 업그레이드하면 새 기능을 활용할 수 있습니다. 웹 응용 프로그램을 다른 .NET Framework 버전으로 다운그레이드하면 다른 웹 서버에 설치된 .NET Framework 버전을 대상으로 지정할 수 있습니다.

프로젝트를 다운그레이드하는 경우에는 프로젝트가 이전 버전의 .NET Framework에서 작동하는지 확인해야 합니다. 이를 위해 프로젝트에서 수동 변경 작업을 수행해야 하는 경우가 많습니다.

참고:

각 .NET Framework 버전에서 사용할 수 있는 서로 다른 기능 외에 웹 응용 프로그램의 .NET Framework 버전을 변경하면 기본적으로 Web.config 파일이 다릅니다.

웹 사이트에 대한 .NET Framework 버전을 업그레이드 또는 다운그레이드하려면

  1. Visual Studio 2008에서 업그레이드 또는 다운그레이드할 웹 사이트를 엽니다.

  2. 솔루션 탐색기에서 프로젝트 이름을 마우스 오른쪽 단추로 클릭한 다음 속성 페이지를 클릭합니다.

    참고:

    웹 응용 프로그램 프로젝트의 경우 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭하십시오.

  3. 프로젝트 속성 페이지에서 빌드 탭을 클릭합니다.

    참고:

    C#을 사용하는 웹 응용 프로그램 프로젝트의 경우 프로젝트 속성 페이지의 응용 프로그램 탭을 클릭하십시오. Visual Basic을 사용하는 웹 응용 프로그램 프로젝트의 경우에는 프로젝트 속성 페이지의 컴파일러 탭을 클릭하고 고급 컴파일러 설정을 클릭하십시오.

  4. .NET Framework 드롭다운 목록에서 대상으로 지정할 버전 번호를 선택합니다.

    참고:

    웹 응용 프로그램 프로젝트의 경우 프로젝트가 Visual Studio에서 언로드된 다음 다시 로드됩니다.

  5. 프로젝트를 다운그레이드한 경우 다음을 수행합니다.

    1. 대상으로 지정된 .NET Framework 버전의 일부가 아닌 구성 요소에 대한 참조를 수동으로 제거합니다.

      참고:

      이전 .NET Framework 버전에서 더 이상 작동하지 않는 어셈블리 참조로 인해 코드에 참조 오류가 표시될 수 있습니다. 이 경우 누락된 모든 어셈블리 참조를 수동으로 대체해야 합니다.

    2. 프로젝트에 서비스 참조가 포함된 경우 서비스 참조를 마우스 오른쪽 단추로 클릭한 다음 제거를 클릭하여 해당 참조를 제거합니다.

어셈블리 참조

Visual Studio에서는 다른 .NET Framework 버전으로 자동 업그레이드하지 않고 웹 프로젝트에 참조를 추가할 수 있습니다.

어셈블리에 대한 참조를 추가할 때 참조 추가 대화 상자에는 대상 .NET Framework 버전에 속하는 시스템 어셈블리만 표시됩니다. 따라서 대상 프레임워크에 없는 어셈블리에 대한 참조를 실수로 추가하지 않게 됩니다.

참고:

프로젝트 파일을 수동으로 편집하여 현재 프로젝트의 대상보다 최신인 .NET Framework 대상에 속하는 참조를 포함할 수 있습니다. 그러나 이렇게 하면 컴파일 타임에 경고가 생성됩니다.

사용자 어셈블리 참조를 프로젝트에 추가하여 이 프로젝트가 대상 프레임워크의 일부가 아닌 시스템 어셈블리를 참조하도록 할 수 있습니다. 이 경우 Visual Studio에 경고가 표시됩니다. 이 경고를 무시할 경우 빌드할 때 경고가 다시 표시됩니다.

맨 위로 이동

.NET Framework 버전을 대상으로 지정할 경우의 프로젝트 차이점

이 단원에서는 서로 다른 버전의 .NET Framework를 대상으로 지정하는 웹 프로젝트 간의 차이점에 대해 중점적으로 설명합니다. 차이점에는 컴파일, 어셈블리 지원 및 기능 지원이 포함됩니다. IntelliSense 및 배포와 같은 Visual Studio의 일부 기능은 다중 대상 지정을 지원하지 않습니다.

새 웹 사이트의 경우 선택하는 .NET Framework 버전에 따라 다음이 결정됩니다.

  • 기본적으로 참조되는 어셈블리

  • ASP.NET 웹 페이지 및 클래스 파일에 기본적으로 포함되는 네임스페이스

  • 동적 컴파일을 위해 런타임 및 디자인 타임에 ASP.NET에 사용되는 컴파일러의 버전

  • 개체, 새 항목, 어셈블리 참조, 웹 참조 및 서비스 참조와 같이 Visual Studio에서 선택할 수 있는 옵션

기존 웹 사이트를 열 경우 Visual Studio는 .NET Framework 버전을 감지하고 프로젝트 대상 .NET Framework 버전을 설정하려고 합니다. Visual Studio는 다음 기준을 사용하여 .NET Framework 버전을 확인합니다.

  • .NET Framework 3.0 어셈블리에 대한 참조가 있는 경우 웹 프로젝트는 적어도 .NET Framework 3.0을 대상으로 지정합니다. 다른 조건에 따라 이후 버전을 대상으로 지정할 수도 있습니다.

  • Web.config 파일의 compilers 섹션이 C# 또는 Visual Basic용 컴파일러 "v3.5" 버전에 매핑되는 경우 웹 사이트는 .NET Framework 3.5를 대상으로 지정합니다.

  • .NET Framework 3.5 어셈블리에 대한 참조가 있는 경우 웹 사이트는 .NET Framework 3.5를 대상으로 지정합니다.

  • 웹 사이트가 앞의 조건을 충족하지 않는 경우 웹 사이트는 .NET Framework 버전 2.0을 대상으로 지정합니다.

    참고:

    프로젝트가 이전에 열렸거나 Visual Studio에 의해 만들어진 경우 대상 버전 번호가 이미 프로젝트에 저장되어 있습니다. 이 경우 Visual Studio는 저장된 버전 번호를 사용하며 저장된 버전 번호와 참조 및 컴파일러에서 감지된 버전 간의 불일치 여부를 확인하려고 하지 않습니다.

프로젝트 템플릿 선택

Visual Studio에는 현재 대상으로 지정된 .NET Framework 버전에 적용되는 프로젝트 템플릿만 표시됩니다. 새 웹 사이트를 만들 때 Visual Studio는 최신 기능에 대한 액세스를 제공하기 위해 자동으로 가장 높은 버전 번호의 .NET Framework를 대상으로 지정합니다. 프로젝트를 만들 때 대상 버전을 선택할 수도 있습니다.

새 웹 사이트에 대한 Web.config 파일의 기본 콘텐츠는 선택된 버전의 .NET Framework를 기반으로 합니다. 참조되는 기본 어셈블리는 assemblies 섹션에 지정되며 컴파일러 버전은 compilers 섹션에 지정됩니다.

도구 상자의 개체 추가

Visual Studio는 현재 대상으로 지정된 버전의 .NET Framework에 적용되지 않는 도구 상자의 항목을 비활성화합니다. 도구 상자 다중 대상 지정 동작은 특정 버전의 .NET Framework에 대한 구성 요소를 해당 버전 또는 이후 버전에 대한 프로젝트에 사용할 수 있다고 가정합니다. 예를 들어 .NET Framework 2.0 컨트롤을 .NET Framework 2.0, .NET Framework 버전 3.0 또는 .NET Framework 버전 3.5 서비스 팩 1에서 사용할 수 있습니다.

새 항목 추가

Visual Studio는 현재 대상으로 지정된 버전의 .NET Framework를 기반으로 새 항목 추가 대화 상자에 표시되는 항목을 필터링합니다.

참고:

기존 항목을 프로젝트에 추가할 경우 Visual Studio는 해당 항목에 대한 참조 및 가져오기가 현재 대상으로 지정된 버전의 .NET Framework와 일치하는지 확인하지 않습니다. 경고는 생성되지 않습니다. 그러나 프로젝트에서 이러한 참조를 확인할 수 없는 경우 프로젝트를 빌드하고 실행할 때 오류가 표시됩니다.

어셈블리 참조 추가

참조 추가 대화 상자를 열 때 Visual Studio는 현재 대상으로 지정된 버전의 .NET Framework를 확인하고 해당 버전에 대해 사용할 수 있는 어셈블리만 열거합니다. 이후 대상 프레임워크용 어셈블리는 표시되지만 비활성화됩니다.

참조 추가 대화 상자의 제목에는 현재 .NET Framework 대상 버전이 포함됩니다. 이 대화 상자에는 각 어셈블리의 프레임워크 버전이 표시되므로 참조를 추가하는 데 필요한 .NET Framework 버전을 확인할 수 있습니다. 또한 사용할 수 없는 어셈블리 위에 마우스 포인터를 놓으면 참조 추가 대화 상자에 어셈블리에 대한 정보가 도구 설명으로 표시됩니다.

참고:

참조 추가 대화 상자를 사용하지 않고 시스템 참조를 수동으로 추가할 경우 Visual Studio는 참조를 확인하지 않습니다. 어셈블리 참조가 현재 대상으로 지정된 .NET Framework 버전 대상의 일부가 아니라는 경고가 디자인 타임이나 빌드할 때 표시될 수 있습니다.

서비스 참조 추가

서비스 참조 추가 대화 상자는 .NET Framework 3.5를 대상으로 지정하는 웹 사이트와 .NET Framework 3.0 또는 .NET Framework 3.5를 대상으로 지정하는 웹 응용 프로그램 프로젝트에서만 사용할 수 있습니다. .NET Framework 3.0을 대상으로 지정하는 웹 사이트에 서비스 참조를 추가하려면 클래스 라이브러리 프로젝트에 서비스 참조를 추가합니다. 그런 다음 웹 사이트 프로젝트에서 클래스 라이브러리 프로젝트를 참조할 수 있습니다.

참고:

클래스 라이브러리는 Visual Web Developer의 프로젝트에 추가할 수 없습니다.

IntelliSense 사용

Visual Studio 2008의 언어 서비스는 특정 버전의 .NET Framework를 대상으로 지정하지 않습니다. 따라서 편집기에 항상 최신 버전의 C# 및 Visual Basic에 대해 IntelliSense가 제공됩니다.

웹 프로젝트는 프로젝트가 대상으로 지정하는 프레임워크 버전에 상관없이 모든 .NET Framework 버전에 대해 IntelliSense를 표시합니다. .NET Framework 버전 2.0 또는 .NET Framework 3.0을 대상으로 지정하는 경우 .NET Framework 버전 3.5의 기능을 참조하는 모든 코드로 인해 컴파일러 오류가 발생합니다.

JScript IntelliSense는 프로젝트가 대상으로 지정하는 .NET Framework 버전에 독립적입니다.

프로젝트 배포

Visual Studio 2008의 웹 게시 및 복사 도구는 특정 버전의 .NET Framework를 대상으로 지정하지 않습니다. Visual Studio는 원격 서버에서 실행 중인 .NET Framework의 버전을 확인하지 않습니다. 프로젝트가 대상으로 지정하는 것보다 이전 버전의 .NET Framework를 포함하는 대상 서버에 프로젝트를 게시하는 경우 이러한 도구는 사용자에게 해당 사실을 알릴 수 없습니다. 이 경우 이후 버전의 .NET Framework를 대상으로 지정하는 프로젝트는 실행되지 않습니다.

맨 위로 이동

참고 항목

개념

ASP.NET의 새로운 기능과 웹 개발

참조

맨 위로 이동

기타 리소스

특정 .NET Framework를 대상으로 지정