Xamarin.ios 용 대상 프레임 워크Target Framework for Xamarin.Mac

이 문서에서는 Xamarin.ios에 사용할 수 있는 대상 프레임 워크 (기본 클래스 라이브러리)와 Xamarin.ios 프로젝트에서 사용 하는 경우의 영향을 다룹니다.This article covers the target frameworks (Base Class Libraries) available for Xamarin.Mac, and the implications of using them in your Xamarin.Mac project.

Xamarin.ios에 대 한 대상 프레임 워크 옵션Target framework options for Xamarin.Mac

배경Background

모든 .NET 프로그램 또는 라이브러리는 BCL (기본 클래스 라이브러리)에서 제공 하는 기능에 따라 달라 집니다.Every .NET program or library depends on functionality provided by the Base Class Library (BCL). 이 BCL에는 모든 .NET 언어에 기본 제공 되는 공통 기능을 제공 하는 mscorlib, System, System .Net. Http 및 System.xml 등의 어셈블리가 포함 되어 있습니다.This BCL includes assemblies such as mscorlib, System, System.Net.Http, and System.Xml that provide the common functionality built into all .NET languages.

몇 년 동안 다양 한 사용 사례에 맞게 최적화 된이 BCL의 여러 다른 버전을 개발 했습니다.Over the years, there have developed multiple different versions of this BCL, optimized for different use cases. "데스크톱" BCL에는 다른 사용 사례에 비해 너무 많은 라이브러리 집합이 포함 되어 있습니다. 반면, 모바일은 Api를 연결 하는 데 안전 하 게 유지 하는 데 중점을 둔 반면 사용 하지 않는 코드를 제거 하 여 응용 프로그램 공간을 줄입니다.The “desktop” BCL includes a richer set of libraries which might be too heavyweight for other use cases, while mobile focuses on ensuring APIs are safe for linking, which removes unused code to reduce application footprint.

이러한 서로 다른 대상 프레임 워크의 중요 한 영향 중 하나는 지정 된 프로그램의 모든 어셈블리가 호환 BCL 어셈블리를 대상으로 해야 한다는 것입니다.One of the more important repercussions of these different Target Frameworks, is that all of the assemblies in a given program must target compatible BCL assemblies. 그렇지 않은 경우에는 지정 된 형식의 서명에 동의 하지 않는 두 개의 어셈블리를 서로 다른 버전의 system.object 에 연결할 수 있습니다.If this was not the case, you could have two assemblies linked against different versions of the System.dll disagreeing about the signature of a given type. 공유 라이브러리는 대상 프레임 워크 또는 특정 대상 프레임 워크의 공통 하위 집합인 .NET Standard 2를 대상으로 지정할 수 있습니다.A shared library can either target .NET Standard 2, which is the common subset of the Target Frameworks, or a specific target framework.

Xamarin.ios에 사용할 수 있는 세 가지 대상 프레임 워크 옵션은 각각 서로 다른 장점과 장단점이 있습니다.There are three Target Framework options available for Xamarin.Mac, each with different advantages and tradeoffs:

  • 최신 (이전 설명서에서 Mobile 이라고 함) – xamarin.ios의 성능과 크기에 대해 매우 유사한 하위 집합입니다.Modern (called Mobile in older documentation) – A very similar subset to what powers Xamarin.iOS, highly tuned for performance and size. 이 대상 프레임 워크는 링커에서 안전 하므로 사용 하지 않는 코드를 제거 하 여 최종 공간을 크게 줄일 수 있습니다.This Target Framework is linker safe, so these projects can have their final footprint drastically reduced by removing unused code.

  • Full (이전 설명서에서 XM 4.5 이라고 함) – 약간의 제거를 포함 하 여 "데스크톱" BCL과 매우 유사한 하위 집합입니다.Full (called XM 4.5 in older documentation) – A very similar subset to the “desktop” BCL, with a few small removals. 대상 프레임 워크는 net45 이상과 거의 동일 하므로 netstandard2 또는 특정 Xamarin.ios 빌드를 제공 하지 않는 많은 nuget를 쉽게 사용할 수 있습니다.As the Target Framework is almost identical to net45 (and later), it can easily consume many nugets that do not provide either netstandard2 or specific Xamarin.Mac builds. 그러나 System. 구성 사용으로 인해 연결과 호환 되지 않습니다.However, due to System.Configuration usage it is incompatible with linking.

  • 지원 되지 않음 (이전 설명서에서 시스템 이라고 함) – xamarin.ios에서 제공 하는 BCL에 연결 하는 대신 현재 시스템에 설치 된 mono를 사용 합니다.Unsupported (called System in older documentation) – Instead of linking to a BCL provided by Xamarin.Mac, use the current system installed mono. 이를 통해 문제가 있는 것으로 알려진 일부 (예: Drawing)를 비롯 하 여 어셈블리를 최대한 활용할 수 있습니다.This provides the fullest set of assemblies, including some known to be problematic (System.Drawing for example). 이 옵션은 "최후의 수단"만을 가지 며 사용 하기 전에 다른 옵션을 사용 하는 것이 좋습니다.This option exists only has a “last resort” and it is strongly suggested to exhaust other options before using it. 이름에서 알 수 있듯이 공식 지원 채널에서 사용이 지원 되지 않습니다.As the name implies, usage is unsupported by official support channels.

대상 프레임 워크 설정Setting the target framework

Xamarin.ios 프로젝트에 대 한 대상 프레임 워크 형식으로 변경 하려면 다음을 수행 합니다.To change to the Target Framework type for a Xamarin.Mac project, do the following:

  1. Mac용 Visual Studio에서 Xamarin.Mac 프로젝트를 엽니다.Open the Xamarin.Mac project in Visual Studio for Mac.

  2. 솔루션 탐색기에서 프로젝트 파일을 두 번 클릭하여 프로젝트 옵션 대화 상자를 엽니다.In the Solution Explorer, double-click the project file to open the Project Options dialog box.

  3. 일반 탭에서 응용 프로그램의 요구에 맞는 대상 프레임 워크 의 형식을 선택 합니다.From the General tab, select the type of Target Framework that suits your application's needs:

    프로젝트 옵션 창을 사용 하 여 대상 프레임 워크 선택Using the Project Options window to choose a target framework

  4. 확인 단추를 클릭하여 변경 내용을 저장합니다.Click the OK button to save your changes.

대상 프레임 워크 유형을 전환한 후에 Xamarin 프로젝트를 정리 하 고 다시 빌드해야 합니다.You should Clean and then Rebuild your Xamarin.Mac project after switching the Target Framework type.

요약Summary

이 문서에서는 Xamarin.ios 응용 프로그램에 사용할 수 있는 다양 한 대상 프레임 워크 (기본 클래스 라이브러리)와 각 유형의 프레임 워크를 사용 해야 하는 경우에 대해 간략하게 설명 합니다.This article has briefly covered the different types of Target Frameworks (Base Class Libraries) available to a Xamarin.Mac application and when each type of framework should be used.