여러 플랫폼에서 코드 공유

이 문서에서는 Windows, Android, iOS 등을 포함하여 플랫폼 간에 코드를 공유하는 데 사용할 수 있는 다양한 옵션을 설명합니다.

코드 공유 개요

.NET 표준 라이브러리 및 공유 프로젝트를 포함하여 Xamarin 프로젝트에 사용할 수 있는 다양한 코드 공유 옵션에 대해 알아봅니다. 이식 가능한 클래스 라이브러리도 지원되지만 .NET Standard를 위해 사용되지 않는 것으로 간주됩니다.

.NET Standard

.NET Standard는 플랫폼 간에 코드를 공유하기 위한 기본 옵션입니다. 코드는 특정 버전에 대해 빌드되며(2.0은 기존 .NET Framework 코드와 최상의 API 호환성을 제공) 해당 수준 이상을 지원하는 다른 프로젝트에서 사용할 수 있습니다. .NET Standard 프로젝트는 Mac용 Visual Studio 2019 및 Visual Studio 2019 모두에서 지원됩니다.

공유 프로젝트

공유 프로젝트를 사용하면 다양한 애플리케이션 프로젝트에서 참조하는 공통 코드를 작성할 수 있습니다. 코드는 각 참조 프로젝트의 일부로 컴파일되며 공유 코드 베이스에 플랫폼별 기능을 통합하는 데 도움이 되는 컴파일러 지시문을 포함할 수 있습니다. 이 문서에서는 공유 프로젝트의 작동 방식과 Xamarin 프로젝트에서 공유 프로젝트를 만들고 사용하는 방법을 설명합니다.

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

이식 가능한 클래스 라이브러리 프로젝트를 사용하면 공유 코드가 포함된 어셈블리를 빌드하고 배포하여 여러 플랫폼에서 실행할 수 있습니다. 이식 가능한 클래스 라이브러리(또는 "PCL")를 만들려면 먼저 대상으로 지정할 플랫폼을 선택한 다음 해당 플랫폼에 대해 정의된 프로필에서 사용할 수 있는 .NET Framework의 하위 집합에 대한 코드를 작성합니다. PCL은 최신 버전의 Visual Studio에서 사용되지 않는 것으로 간주됩니다. 개발자는 대신 .NET Standard 2.0을 사용하는 것이 좋습니다.

NuGet 프로젝트: 코드 공유를 위한 다중 플랫폼 라이브러리

NuGet 패키지는 PCL 또는 .NET 표준 프로젝트에서 자동으로 생성될 수 있습니다. 및 공유 프로젝트는 별도의 NuGet 프로젝트 형식을 사용하여 "미끼 및 스위치" NuGet 패키지로 패키징할 수 있습니다. 이 섹션에서는 각 코드 공유 시나리오에 대한 NuGet 패키지를 만드는 방법을 설명합니다.

Xamarin용 NuGet 패키지 수동 만들기

Xamarin 플랫폼에서 작동하는 NuGet 패키지를 만들기 위한 팁.

플랫폼 간 Xamarin 프로젝트에서 C/C++ 라이브러리 사용

이 기술을 사용하면 C/C++ 라이브러리의 진화, NuGet의 C# 바인딩 및 Xamarin 애플리케이션을 분리할 수 있습니다. 기능은 네이티브 플랫폼 C/C++ 라이브러리에서 제공되지만 모든 플랫폼별 코드는 최종 Xamarin 애플리케이션과 격리되어 코드 중복 없이 가능한 가장 높은 성능을 허용합니다.