이식 가능한 클래스 라이브러리를 사용 하 여 플랫폼 간 개발Cross-platform development with the Portable Class Library

Visual Studio의 이식 가능한 클래스 라이브러리 프로젝트 형식을 사용 하면 Microsoft 플랫폼용 플랫폼 간 앱 및 라이브러리를 빠르고 쉽게 빌드할 수 있습니다.The Portable Class Library project type in Visual Studio helps you build cross-platform apps and libraries for Microsoft platforms quickly and easily.

중요

이식 가능한 클래스 라이브러리 프로젝트는.NET 구현의 매우 구체적인 하위 집합만 대상으로 하기 때문에 강력한 것이 좋습니다 새 응용 프로그램 개발에 사용을 합니다.Because Portable Class Library projects target only a very specific subset of .NET implementations, we strongly discourage their use in new application development. 권장 되는 대신.NET Standard 라이브러리를.NET 표준의 특정 버전을 지 원하는 모든.NET 구현을 대상으로 하는 경우The recommended replacement is a .NET Standard library, which targets all .NET implementations that support a specific version of the .NET Standard. 자세한 내용은 .NET 표준을 참조하세요.For more information, see .NET Standard.

이식 가능한 클래스 라이브러리를 사용하면 코드 개발 및 테스트에 드는 시간과 비용을 줄일 수 있습니다.Portable class libraries can help you reduce the time and costs of developing and testing code. 이 프로젝트 형식을 사용 하 여 이식 가능한 .NET Framework 어셈블리를 작성 하 고 빌드한 다음 .NET Framework, iOS, Mac 등의 여러 플랫폼을 대상으로 하는 앱에서 해당 어셈블리를 참조 합니다.Use this project type to write and build portable .NET Framework assemblies, and then reference those assemblies from apps that target multiple platforms such as the .NET Framework, iOS, or Mac.

Visual Studio에서 이식 가능한 클래스 라이브러리 프로젝트를 만든 다음 해당 프로젝트 개발을 시작한 후에도 대상 플랫폼을 변경할 수 있습니다.Even after you create a Portable Class Library project in Visual Studio and start developing it, you can change the target platforms. Visual Studio는 새 어셈블리를 사용 하 여 라이브러리를 컴파일하여 코드에서 수행 해야 하는 변경 내용을 식별 하는 데 도움이 됩니다.Visual Studio compiles your library with the new assemblies, which helps you identify the changes you need to make in your code.

이식 가능한 클래스 라이브러리 프로젝트 만들기Create a Portable Class Library project

이식 가능한 클래스 라이브러리를 만들려면 Visual Studio에서 제공 하는 템플릿을 사용 합니다.To create a Portable Class Library, use the template provided in Visual Studio. 새 프로젝트를 만들고 (새 프로젝트파일 > New Project) 새 프로젝트 대화 상자에서 프로그래밍 언어 (Visual c # 또는 Visual Basic)를 선택 합니다.Create a new project (File > New Project), and in the New Project dialog box, select your programming language (Visual C# or Visual Basic). 그런 다음 클래스 라이브러리 (레거시 이식 가능) 템플릿을 선택 합니다.Then, select the Class Library (Legacy Portable) template. 프로젝트의 이름을 입력 하 고 확인을 선택 합니다.Enter a name for your project and choose OK.

이식 가능한 클래스 라이브러리 추가 대화 상자가 나타납니다.The Add Portable Class Library dialog box appears. 대상을 두 개 이상 선택한 다음 확인을 선택 합니다.Choose two or more targets, and then choose OK.

Visual Studio에서 이식 가능한 클래스 라이브러리 대상 추가

변경 대상Change targets

이식 가능한 클래스 라이브러리 프로젝트를 만들거나 개발을 시작한 후에는 대상 플랫폼을 변경할 수 있습니다.You can change the target platforms of a portable class library project when you create it or after you've started development. 프로젝트를 만든 후 대상을 변경 하려면 솔루션 탐색기에서 이식 가능한 클래스 라이브러리 프로젝트 (솔루션이 아님)에 대 한 바로 가기 메뉴를 열고 속성을 선택 합니다.If you want to change the targets after you've created your project, in Solution Explorer, open the shortcut menu for your Portable Class Library project (not the solution), and then choose Properties. 프로젝트 속성 페이지의 라이브러리 탭에는 현재 프로젝트에서 대상으로 하는 플랫폼이 표시 됩니다.On the project properties page, the Library tab shows the platforms that your project currently targets.

Visual Studio의 이식 가능한 클래스 라이브러리에 대 한 프로젝트 속성

대상을 추가 하거나 제거 하려면 변경 단추를 선택한 다음 해당 확인란을 선택 하 고 선택 취소 합니다.To add or remove targets, choose the Change button, and then select and clear the appropriate check boxes.

대상을 변경하면 프로젝트 개발에 사용할 수 있는 API가 선택에 맞춰 변경됩니다.When you change the targets, the APIs that are available to you for developing your project will change to match your selection. Visual Studio에서는 대상 변경의 결과로 발생할 수 있는 오류 및 경고를 보고합니다.Visual Studio reports the errors and warnings that may occur as a result of the targets changing.

Visual Studio를 변경 하기 전에 어셈블리의 이식성을 평가 하려는 경우 .Net 이식성 분석기를 사용할 수 있습니다.If you want to evaluate the portability of your assemblies before you make changes in Visual Studio, you can use the .NET Portability Analyzer.

지원되는 형식 및 멤버Supported types and members

이식 가능한 클래스 라이브러리 프로젝트에서 사용할 수 있는 형식 및 멤버는 다음과 같이 여러 호환성 요소로 제한됩니다.The types and members that are available in Portable Class Library projects are constrained by several compatibility factors:

  • 이들은 선택한 대상 간에 공유되어야 합니다.They must be shared across the targets you selected.

  • 이들은 이러한 여러 대상에서 유사하게 작동해야 합니다.The must behave similarly across those targets.

  • 이들은 사용 중단 후보가 되어서는 안 됩니다.They must not be candidates for deprecation.

  • 이들은 특히 지원하는 멤버를 이식할 수 없을 때 이식 가능한 환경에서 의미가 있어야 합니다.They must make sense in a portable environment, especially when supporting members are not portable.

멤버가 이식 가능한 클래스 라이브러리에서 그리고 선택한 대상에 대해 지원되는 경우 IntelliSense의 프로젝트에 나타납니다.If a member is supported in the Portable Class Library and for your selected targets, it will appear in your project in IntelliSense. 그러나 이식 가능한 클래스 라이브러리에서 API가 지원될 수는 있지만 API를 사용할 수 있는지 여부는 선택한 대상에 따라 달라집니다.However, remember that an API may be supported in the Portable Class Library, but whether you can use the API depends on the targets you select.

이식 가능한 클래스 라이브러리에서의 API 차이점API differences in the Portable Class Library

이식 가능한 클래스 라이브러리 어셈블리가 지원되는 모든 플랫폼에서 호환되도록 하기 위해 이식 가능한 클래스 라이브러리에서 일부 멤버가 약간 변경되었습니다.To make Portable Class Library assemblies compatible across all supported platforms, some members have been slightly changed in the Portable Class Library.

이식 가능한 클래스 라이브러리 사용Use the Portable Class Library

이식 가능한 클래스 라이브러리 프로젝트를 빌드한 후에는 다른 프로젝트에서 이 프로젝트를 참조하게 합니다.After you build your Portable Class Library project, you just reference it from other projects. 액세스하려는 클래스가 포함된 프로젝트 또는 특정 어셈블리를 참조할 수 있습니다.You can reference either the project or specific assemblies that contain the classes you want to access.

이식 가능한 클래스 라이브러리 어셈블리를 참조하는 앱을 실행하려면 대상 플랫폼의 필수 버전(또는 이후 버전)이 컴퓨터에 설치되어 있어야 합니다.To run an app that references a Portable Class Library assembly, the required version (or later) of the targeted platforms must be installed on your computer. Visual Studio에는 필요한 모든 프레임워크가 포함되므로 앱을 개발하는 데 사용한 컴퓨터에서 더 이상의 수정 없이 앱을 실행할 수 있습니다.Visual Studio contains all the required frameworks, so you can run the app without further modification on the computer that you used to develop the app.

유니버설 Windows 앱 배포Deploy a Universal Windows app

이식 가능한 클래스 라이브러리 어셈블리를 참조 하는 유니버설 Windows 앱을 만드는 경우 앱을 배포 하는 데 필요한 모든 항목이 앱 패키지에 포함 되며 추가 단계가 필요 하지 않습니다.When you create a Universal Windows app that references a Portable Class Library assembly, everything you need to deploy the app is included in the app package, and no further steps are required.

.NET Framework 앱 배포Deploy a .NET Framework app

이식 가능한 클래스 라이브러리 어셈블리를 참조하는 .NET Framework 앱을 배포할 때 종속성을 올바른 .NET Framework 버전에 지정해야 합니다.When you deploy a .NET Framework app that references a Portable Class Library assembly, you must specify a dependency on the correct version of the .NET Framework. 이 종속성을 지정하여 응용 프로그램에 필수 버전이 설치되도록 해야 합니다.By specifying this dependency, you ensure that the required version is installed with your app.

  • ClickOnce 배포를 사용 하 여 종속성을 만들려면: 솔루션 탐색기에서 게시할 프로젝트에 대 한 프로젝트 노드를 선택 합니다.To create a dependency with ClickOnce deployment: In Solution Explorer, choose the project node for the project you want to publish. 이식 가능한 클래스 라이브러리 프로젝트를 참조 하는 프로젝트입니다. 메뉴 모음에서 프로젝트 > 속성을 선택한 다음 게시 탭을 선택 합니다. 게시 페이지에서 필수 구성 요소를 선택 합니다.(This is the project that references the Portable Class Library project.) On the menu bar, choose Project > Properties, and then choose the Publish tab. On the Publish page, choose Prerequisites. 필수 .NET Framework 버전을 필수 구성 요소로 선택합니다.Select the required .NET Framework version as a prerequisite.

  • 설치 프로젝트를 사용 하 여 종속성을 만들려면: 솔루션 탐색기에서 설치 프로젝트를 선택 합니다.To create a dependency with a setup project: In Solution Explorer, choose the setup project. 메뉴 모음에서 프로젝트 > 속성 > 필수 구성 요소를 선택 합니다.On the menu bar, choose Project > Properties > Prerequisites. 필수 .NET Framework 버전을 필수 구성 요소로 선택합니다.Select the required .NET Framework version as a prerequisite.

.NET Framework 앱을 배포 하는 방법에 대 한 자세한 내용은 개발자를 위한 배포 가이드를 참조 하세요.For more information about deploying .NET Framework apps, see Deployment Guide for Developers.

참고 항목See also