이식 가능한 클래스 라이브러리를 사용 하 여 플랫폼 간 개발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. 새 프로젝트를 만듭니다 (파일 > 새 프로젝트), 및를 새 프로젝트 대화 상자 (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