다음을 통해 공유


이식 가능한 클래스 라이브러리

업데이트: 2011년 5월

이식 가능한 클래스 라이브러리 프로젝트를 사용하여 둘 이상의 .NET Framework 플랫폼에서 작동하는 관리되는 어셈블리를 작성하고 빌드할 수 있습니다. 공유 비즈니스 논리와 같이 여러 프로젝트 간에 공유하려는 코드를 포함하는 클래스를 만든 다음 여러 프로젝트 유형에서 해당 클래스를 참조할 수 있습니다.

이식 가능한 클래스 라이브러리 프로젝트를 사용하여 .NET Framework, Silverlight, Windows Phone 7 또는 Xbox 360 플랫폼에서 수정 없이 작동하는 이식 가능한 어셈블리를 빌드할 수 있습니다. 이식 가능한 클래스 라이브러리 프로젝트가 없는 경우 단일 플랫폼을 대상으로 지정한 후 다른 플랫폼에 대한 클래스 라이브러리를 수동으로 재작업해야 합니다. 이식 가능한 클래스 라이브러리 프로젝트에서는 이러한 플랫폼의 어셈블리 하위 집합을 지원하며 이러한 플랫폼을 수정하지 않고 실행하는 어셈블리를 빌드할 수 있도록 해 주는 Visual Studio 템플릿을 제공합니다.

사전 요구 사항

이식 가능한 클래스 라이브러리 프로젝트를 만들려면 다음과 같은 순서로 이러한 구성 요소를 설치해야 합니다.

  1. Visual Studio 2010 Service Pack 1(SP1)

  2. Portable Library Tools

어셈블리

다음 어셈블리는 이식 가능한 클래스 라이브러리 프로젝트 내에서만 사용할 수 있습니다.

  • mscorlib.dll

  • System.dll

  • System.Core.dll

  • System.Xml.dll

  • System.ComponentModel.Composition.dll

  • System.Net.dll

  • System.Runtime.Serialization.dll

  • System.ServiceModel.dll

  • System.Xml.Serialization.dll

  • System.Windows.dll(Silverlight)

그러나 이러한 모든 어셈블리가 모든 플랫폼에서 지원되는 것은 아닙니다. 이식 가능한 클래스 라이브러리 프로젝트에서 대상으로 할 플랫폼을 지정하며 이러한 플랫폼에 대해 지원되는 어셈블리만 프로젝트에서 참조됩니다. 대상으로 지정한 플랫폼에서 지원되지 않는 어셈블리를 참조하려는 경우 Visual Studio에서 비호환성 경고를 표시합니다. 핵심 어셈블리(mscorlib.dll, System.dll, System.Core.dll 및 System.Xml.dll)는 모든 플랫폼에서 지원됩니다.

다음 표에서는 사용 가능한 플랫폼에서 지원되는 어셈블리를 보여 줍니다.

기능

어셈블리

.NET Framework 4

Silverlight

Windows Phone 7

Xbox 360

코어

mscorlib.dll, System.dll, System.Core.dll, System.Xml.dll

MEF(Managed Extensibility Framework)

System.ComponentModel.Composition.dll

아니요

아니요

NCL(Network Class Library)

System.Net.dll

아니요

Serialization

System.Runtime.Serialization.dll

아니요

WCF(Windows Communication Foundation)

System.ServiceModel.dll

아니요

XML Serialization

System.Xml.Serialization.dll

아니요

뷰 모델 지원

System.Windows.dll(Silverlight)

아니요

아니요

이식 가능한 클래스 라이브러리 프로젝트에서는 플랫폼 조합을 대상으로 지정합니다. 다음 표에서는 플랫폼 조합에 대해 지원되는 기능을 보여 줍니다.

플랫폼

지원

Silverlight 및 Windows Phone 7

MEF를 제외한 모든 항목

.NET Framework 4 및 Silverlight

뷰 모델 지원을 제외한 모든 항목

.NET Framework 4 및 Windows Phone 7

뷰 모델 지원 및 MEF를 제외한 모든 항목

.NET Framework 4, Silverlight 및 Windows Phone 7

뷰 모델 지원 및 MEF를 제외한 모든 항목

Xbox 360 및 기타 모든 플랫폼

핵심 부분만 적용

참조 문서에서 지원되는 멤버 찾기

.NET Framework 클래스 라이브러리의 참조 항목에서 이식 가능한 클래스 라이브러리 프로젝트에서 지원되는 멤버를 찾아볼 수 있습니다. 클래스의 멤버 표에서 지원되는 멤버 옆에 다음 이식 가능한 클래스 라이브러리 아이콘이 나타납니다.

이식 가능한 라이브러리에서 지원됨

형식 또는 멤버가 이식 가능한 클래스 라이브러리 프로젝트에서 지원됨을 나타내는 정보는 참조 항목의 버전 정보 단원에서 볼 수도 있습니다.

뷰 모델 패턴 지원

Silverlight 및 Windows Phone 7을 대상으로 할 경우 솔루션에서 뷰 모델 패턴을 구현할 수 있습니다. 이 패턴을 구현하기 위한 클래스는 Silverlight의 System.Windows.dll 어셈블리에 있습니다. .NET Framework 4 또는 Xbox 360을 대상으로 하는 이식 가능한 클래스 라이브러리 프로젝트를 만들 경우에는 System.Windows.dll 어셈블리가 지원되지 않습니다.

이 어셈블리의 클래스는 다음을 포함합니다.

.NET Framework 4에도 이러한 클래스가 포함되지만 System.Windows.dll이 아닌 다른 어셈블리에서 구현됩니다. 이식 가능한 클래스 라이브러리 프로젝트에서 이러한 클래스를 사용하려면 .NET Framework 4 설명서에 나열된 어셈블리가 아닌 System.Windows.dll을 참조해야 합니다.

이식 가능한 클래스 라이브러리 프로젝트 만들기

이식 가능한 클래스 라이브러리 프로젝트를 만들려면 Visual Studio 2010에서 새 프로젝트를 만든 다음 Visual C# 또는 Visual Basic 아래에서 이식 가능한 클래스 라이브러리 템플릿을 선택합니다. 템플릿이 보이지 않는 경우 Portable Library Tools를 설치했는지 확인하십시오.

이식 가능한 라이브러리 프로젝트 선택

대상으로 지정할 플랫폼 선택

기본적으로 이식 가능한 클래스 라이브러리 프로젝트에서는 다음 플랫폼을 대상으로 지정합니다.

  • .NET Framework 4

  • Silverlight 4

  • Silverlight for Windows Phone 7

프로젝트에서는 해당 플랫폼에서 지원되는 어셈블리만 참조합니다. 대상으로 지정할 플랫폼을 선택하려면 솔루션 탐색기에서 이식 가능한 클래스 라이브러리 프로젝트 이름을 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.

프로젝트 속성 페이지에서는 현재 대상으로 하는 플랫폼을 지정합니다.

프로젝트 속성

대상 플랫폼을 추가하거나 제거하려면 변경을 클릭합니다.

대상 변경

대상 플랫폼을 변경할 때 프로젝트에서 참조되는 어셈블리는 선택 사항에 대해 지원되는 어셈블리 집합과 일치하도록 변경됩니다. 선택한 플랫폼 중 하나에서 지원되지 않는 어셈블리를 프로젝트에서 참조하는 경우 어셈블리에 대한 참조를 제거하거나 대상 플랫폼을 변경해야 합니다. 솔루션 탐색기에서 지원되지 않는 어셈블리는 느낌표(!)로 표시됩니다. 다음 그림에서는 Xbox 360 플랫폼을 대상 플랫폼에 추가할 때 지원되지 않는 어셈블리에 대한 경고를 보여 줍니다.

경고

이식 가능한 클래스 라이브러리 사용

이식 가능한 클래스 라이브러리 프로젝트를 빌드한 다음 이식 가능한 클래스 라이브러리 프로젝트에 종속적인 다른 프로젝트에서 참조를 추가하기만 하면 됩니다. 액세스하려는 클래스가 포함된 프로젝트 또는 특정 어셈블리를 참조할 수 있습니다.

종속성 만들기

이식 가능한 클래스 라이브러리 응용 프로그램을 실행하려면 .NET Framework 4 업데이트를 컴퓨터에 설치해야 합니다. 이 업데이트는 자동으로 Visual Studio 2010 SP1과 함께 설치되므로 응용 프로그램을 개발하는 데 사용된 컴퓨터에서 수정하지 않아도 이식 가능한 클래스 라이브러리 응용 프로그램을 실행할 수 있습니다. 다른 컴퓨터에서 응용 프로그램을 실행하려면 직접 업데이트를 설치할 수 있습니다.

이식 가능한 클래스 라이브러리 어셈블리를 참조하는 .NET Framework 4 응용 프로그램을 배포할 때 .NET Framework 4 업데이트에 대한 종속성을 지정해야 합니다. 이 종속성을 지정함으로써 업데이트가 응용 프로그램과 함께 설치됩니다.

  • ClickOnce 배포를 사용하여 종속성을 만들려면 솔루션 탐색기에서 게시할 프로젝트의 프로젝트 노드를 클릭합니다. 이것은 이식 가능한 클래스 라이브러리 프로젝트를 참조하는 프로젝트입니다. 프로젝트 메뉴에서 속성을 클릭한 다음 게시 탭을 클릭합니다. 게시 페이지에서 필수 구성 요소를 클릭합니다. .NET Framework 4 업데이트를 필수 구성 요소로 선택합니다.

  • 설치 프로젝트를 사용하여 종속성을 만들려면 솔루션 탐색기에서 설치 프로젝트를 클릭합니다. 프로젝트 메뉴에서 속성을 클릭한 다음 필수 구성 요소를 클릭합니다. .NET Framework 4 업데이트를 필수 구성 요소로 선택합니다.

.NET Framework 응용 프로그램 배포에 대한 자세한 내용은 개발자를 위한 .NET Framework 배포 가이드를 참조하십시오.

Silverlight와 함께 배포

Silverlight 기반 응용 프로그램과 함께 이식 가능한 클래스 라이브러리 어셈블리를 배포하려면 응용 프로그램에 필요한 최소 런타임 버전이 4.0.60129.0 이상 버전으로 설정되어야 합니다. Silverlight 기반 응용 프로그램을 호스팅하는 웹 페이지에 <param name="minRuntimeVersion" value="4.0.60129.0" />을 포함하여 minRuntimeVersion 매개 변수 값을 설정합니다.

<div id="silverlightControlHost">
    <object data="data:application/x-silverlight-2," 
           type="application/x-silverlight-2" width="100%" height="100%">
    <param name="source" value="ClientBin/SilverlightApplication.xap"/>
    <param name="onError" value="onSilverlightError" />
    <param name="background" value="white" />
    <param name="minRuntimeVersion" value="4.0.60129.0" />
    <param name="autoUpgrade" value="true" />
    <a href="https://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" 
             style="text-decoration:none">
      <img src=https://go.microsoft.com/fwlink/?LinkId=161376
             alt="Get Microsoft Silverlight" style="border-style:none"/>
    </a>
  </object>
   <iframe id="_sl_historyFrame" 
              style="visibility:hidden;height:0px;width:0px;border:0px">
   </iframe>
</div>

이식 가능한 클래스 라이브러리의 API 차이점

이식 가능한 클래스 라이브러리 어셈블리가 지원되는 모든 플랫폼에서 호환되도록 하기 위해 이식 가능한 클래스 라이브러리에서 일부 멤버가 약간 변경되었습니다. 변경된 멤버와 변경 방법에 대한 자세한 내용은 이식 가능한 클래스 라이브러리의 API 차이점을 참조하십시오.

참고 항목

기타 리소스

이식 가능한 클래스 라이브러리의 API 차이점

변경 기록

날짜

변경 내용

이유

2011년 5월

뷰 모델 패턴 지원 및 종속성 만들기에 대한 정보가 추가되었습니다.

향상된 기능 관련 정보

2011년 3월

항목이 추가되었습니다.

향상된 기능 관련 정보