NuGet에 대 한 새 다중 플랫폼 라이브러리 만들기Creating a New Multiplatform Library for NuGet

PCL 또는 .NET Standard를 사용 하는 다중 플랫폼 라이브러리 프로젝트를 만들면 결과 NuGet을 ASP.NET 프로젝트를 비롯 한 대상 프로필을 지 원하는 모든 .NET 프로젝트 또는 WinForms, WPF 또는 UWP를 사용 하는 데스크톱 응용 프로그램에 추가할 수 있습니다.Creating a Multiplatform Library project that uses PCL or .NET Standard means that the resulting NuGet can be added to any .NET project that supports the target profile, including ASP.NET projects, or desktop apps using WinForms, WPF, or UWP.

라이브러리는 선택한 PCL 또는 .NET Standard 프로필에서 지원 되는 코드와 추가 된 다른 Nuget 포함할 수 있습니다.The library can only contain code supported by the selected PCL or .NET Standard profile, as well as any other NuGets that are added. 이는 전적으로 .NET 기본 클래스 라이브러리에서 표현할 수 있는 비즈니스 논리 및 알고리즘에 적합 합니다.This is suited to business logic and algorithms that can be expressed entirely in the .NET base class library.

단일 어셈블리가 만들어지고 NuGet 패키지로 빌드됩니다.A single assembly is created and built into a NuGet package.

나중에 플랫폼 특정 기능이 필요한 경우 플랫폼별 프로젝트를 추가할 수 있습니다.If you later need platform-specific functionality, platform-specific projects can be added.

다중 플랫폼 라이브러리 NuGet을 만드는 단계Steps to Create a Multiplatform Library NuGet

  1. 파일 > 새 솔루션 을 선택 하거나 기존 솔루션을 마우스 오른쪽 단추로 클릭 하 고 추가 > 새 프로젝트를 선택 합니다.Select File > New Solution (or right click an existing solution and choose Add > New Project).

  2. 다중 플랫폼 > 라이브러리 섹션에서 다중 플랫폼 라이브러리 를 선택 합니다.Choose Multiplatform Library from the Multiplatform > Library section:

  3. 이름설명을입력 하 고 모든 플랫폼에 대해 단일을 선택 합니다.Enter a Name and Description, and choose Single for all platforms:

  4. 마법사를 완료합니다.Complete the wizard. 솔루션에 단일 라이브러리 프로젝트가 생성 됩니다.A single library project is created in the solution.

  5. 새 라이브러리 프로젝트를 마우스 오른쪽 단추로 클릭 한 다음 옵션을 선택 합니다.Right-click on the new library project and then select Options. 빌드 > 일반 섹션에서 대상 프레임 워크 를 설정할 수 있습니다. .net 휴대용 PCL 프로필 또는 .NET Standard 버전을 선택 합니다.The Build > General section allows the Target Framework to be set – choose a .NET Portable PCL profile or a .NET Standard version:

  6. 또한 프로젝트 옵션 창에서 NuGet 패키지 > 메타 데이터 섹션을 열고 필요한 메타 데이터 뿐만 아니라 선택적 메타 데이터를 입력 합니다.Also in the Project Options window, open the NuGet Package > Metadata section and enter the required metadata (as well as any optional metadata):

  7. 라이브러리 프로젝트를 마우스 오른쪽 단추로 클릭 하 고 Nuget 패키지 만들기 (또는 솔루션 빌드 또는 배포)를 선택 합니다. nupkg NuGet 패키지 파일은 구성에 따라/l o b / 폴더 (디버그 또는 릴리스)에 저장 됩니다.Right-click on the library project and choose Create NuGet Package (or build or deploy the solution) and the .nupkg NuGet package file will be saved in the /bin/ folder (either Debug or Release, depending on configuration):

출력 확인Verifying the Output

NuGet 패키지는 ZIP 파일 이기도 하므로 생성 된 패키지의 내부 구조를 검사할 수 있습니다.NuGet packages are also ZIP files, so it's possible to inspect the internal structure of the generated package.

이 스크린샷에서는 PCL 기반 NuGet의 내용을 보여 줍니다. 단일 PCL 어셈블리만 포함 됩니다.This screenshot shows the contents of a PCL-based NuGet – only a single PCL assembly is included:

플랫폼별 코드 추가Adding Platform-Specific Code

PCL 기반 프로젝트 및 .NET Standard 기반 프로젝트는 플랫폼별 참조 (예: iOS 또는 Android 기능)를 포함할 수 없습니다.PCL-based projects and .NET Standard-based projects cannot contain platform-specific references (such as iOS or Android functionality).

플랫폼 특정 코드를 포함 하도록 기존 PCL 프로젝트 또는 .NET Standard 프로젝트를 확장 해야 하는 경우 프로젝트를 마우스 오른쪽 단추로 클릭 하 고 추가 > 플랫폼 구현 추가...를 선택 하 여이 작업을 수행할 수 있습니다.If an existing PCL project or .NET Standard project needs to be expanded to include platform-specific code, this can be done by right-clicking on the project and selecting Add > Add Platform Implementation...:

하나 이상의 플랫폼 프로젝트를 솔루션에 추가할 수 있으며, 기존 PCL 또는 .NET Standard 라이브러리를 선택적으로 공유 프로젝트로 변환할 수 있습니다.One or more platform projects can be added to the solution, and the existing PCL or .NET Standard library can optionally be converted to a Shared Project:

공유 프로젝트로 변환한 후에는 프로젝트 옵션 > Nuget 패키지 > 참조 어셈블리 섹션 을 방문 하 여 필요한 프로필이 선택 되었는지 확인 합니다. 이전에에서 사용 됨).After converting to a Shared Project, visit the Project Options > NuGet Package > Reference Assemblies section and ensure that any required profiles are selected (so that the NuGet continues to be compatible with projects it was previously used in).