Razor 클래스 라이브러리 패키지
자주 수행할 작업은 다른 개발자가 재사용할 수 있는 라이브러리를 패키지하는 것입니다. NuGet 패키징을 사용하면 모든 개발자가 애플리케이션에 대해 모든 .NET 참조를 획득하고 적절히 구성할 수 있습니다.
이전 단원에서는 모달 대화 상자 구성 요소를 빌드하고 자체 애플리케이션에서 사용했습니다. 이제 다른 애플리케이션에서 재사용하려고 합니다.
이 단원에서는 Razor 클래스 라이브러리를 NuGet 패키지로 구성하는 데 필요한 단계를 알아봅니다. NuGet.org 또는 GitHub 리포지토리와 같은 패키지 리포지토리 서비스를 사용하여 배포를 위해 라이브러리를 패키지하는 방법도 알아봅니다.
NuGet 패키징을 위한 Razor 클래스 라이브러리 구성
.NET 에코시스템을 이용하면 다른 개발자가 구성 요소를 식별하고 사용하는 데 필요한 속성을 쉽게 정의할 수 있습니다. 이러한 속성은 모두 Razor 클래스 라이브러리의 프로젝트 파일(*.csproj)에서 정의할 수 있으므로 라이브러리와 함께 이동하고 라이브러리가 업데이트될 때 적절히 업데이트됩니다.
패키지를 식별하는 필드를 Visual Studio 프로젝트 속성 - 패키지 대화 상자에서 구성하거나 직접 *.csproj 파일에 항목을 만들 수 있습니다.
패키지를 만드는 데 필요한 4개 필드는 다음과 같습니다.
필드 | Description | 기본값 |
---|---|---|
PackageId | 전체 NuGet 리포지토리에서 고유한 패키지 식별자입니다. | 라이브러리의 AssemblyName |
Version | Major.Minor.Patch[-Suffix] 형식의 특정 버전 번호입니다. 여기서 -Suffix는 선택적으로 사전 릴리스 버전을 정의합니다. | 1.0.0 |
작성자 | 패키지 작성자입니다. | AssemblyName |
회사 | 패키지를 만들고 게시하는 회사의 이름입니다. | AssemblyName |
이러한 필드 중 일부는 기본값이 있습니다. 회사 이름이 MyFirstLibrary인 패키지를 게시한다면 이상할 수 있으므로 이러한 값을 명시적으로 정의해야 합니다.
이전 단원에서는 Razor 클래스 라이브러리의 정적 콘텐츠를 _content/[PACKAGE_ID]/
에서 사용할 수 있음을 알았고 이제 PackageId
값이 구성되는 위치를 확인했습니다.
이러한 값이 구성된 샘플 프로젝트 파일은 다음과 같습니다.
<PropertyGroup>
<PackageId>Learn.MyFirstLibrary</PackageId>
<Version>0.1.0-alpha1</Version>
<Authors>Susan Developer, Terry Programmer</Authors>
<Company>AdventureWorks</Company>
</PropertyGroup>
프로젝트를 빌드할 때 Visual Studio의 프로젝트 속성 대화 상자에서 빌드 시 NuGet 패키지 생성 옵션을 선택하거나 다음과 같이 다른 패키지 필드 옆에 GeneratePackageOnBuild
항목을 추가하여 빌드할 때 NuGet 패키지를 생성하도록 구성할 수도 있습니다.
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
다음을 포함하여 많은 선택적 프로젝트 속성을 구성할 수 있습니다.
- NuGet 리포지토리에 표시하는 데 적합한
Description
- 저작권 표시
- 라이선싱 정보
- 아이콘
- URL 보호
속성의 전체 목록은 MSBuild 팩 대상에 대한 Microsoft 설명서를 확인하세요.
라이브러리 패키지
*.csproj 파일에 라이브러리 구성을 작성한 후 Visual Studio에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 Pack 명령을 선택하거나 프로젝트 폴더에서 다음 명령을 실행하여 NuGet 패키지를 생성할 수 있습니다.
dotnet pack
이 dotnet pack
명령은 PackageID 및 버전 번호가 있는 패키지를 생성하여 표준 프로젝트 빌드 출력 폴더에 배치합니다.