NuGet 패키지 만들기
Razor 클래스 라이브러리를 패키지하면 Blazor 프로젝트가 참조할 수 있는 이진 결과물이 만들어지고 Blazor 프로젝트에서 그 안의 구성 요소를 사용할 수 있습니다.
이전 단원에서 Blazor 애플리케이션에 대한 모달 대화 상자 창을 제공하는 모달 구성 요소가 포함된 Razor 클래스 라이브러리를 만들었습니다. 이 구성 요소를 다른 애플리케이션에서 사용하도록 공유하려면 이를 패키지하여 다른 개발자가 액세스할 수 있는 리포지토리 또는 폴더에 배치해야 합니다.
이 단원에서는 해당 프로젝트를 업데이트하고 NuGet 패키지를 생성합니다. 마지막으로 해당 NuGet 패키지를 Blazor 서버 애플리케이션에 배포합니다.
FirstClassLibrary에 패키지 속성 추가
먼저 FirstClassLibrary 프로젝트를 NuGet 패키지로 배포하기 위해 패키지할 수 있는 속성으로 업데이트합니다.
Visual Studio 솔루션 탐색기에서 프로젝트를 두 번 클릭하거나 Visual Studio Code에서 MyClassLibrary.csproj를 열어 MyClassLibrary 프로젝트에 대한 프로젝트 파일을 엽니다.
파일 맨 위 근처의
<PropertyGroup>
태그가 있는 섹션에서 닫는</PropertyGroup>
태그 앞에 다음 콘텐츠를 추가합니다.<PackageId>My.FirstClassLibrary</PackageId> <Version>0.1.0</Version> <Authors>YOUR NAME</Authors> <Company>YOUR COMPANY NAME</Company> <Description>This is a Razor component library with a cool modal window component.</Description> </PropertyGroup>
이 코드는 Razor 클래스 라이브러리가
<PackageId>
"My.FirstClassLibrary"와<Version>
0.1.0을 갖는 것으로 정의합니다. 이 두 필드에서 개발자 이름과 회사 이름을 입력합니다.
재사용을 위해 라이브러리 패키지
다음으로 명령줄에서 .NET 명령을 실행하여 솔루션 외부의 다른 애플리케이션에서 참조할 수 있도록 Razor 클래스 라이브러리를 패키지합니다.
연속 통합 프로세스에서 동일한 단계를 실행하여 라이브러리를 패키지하고 NuGet.org, GitHub 리포지토리 또는 조직에서 공유할 다른 위치에 배포할 수 있습니다.
MyClassLibrary.csproj 파일과 동일한 폴더에서 다음 명령을 실행합니다.
dotnet pack
이 명령은 My.FirstClassLibrary.0.1.0.nupkg라는 파일을 bin/Debug 폴더에 씁니다.
MyBlazorServer 애플리케이션에서 NuGet 패키지에 대한 참조 추가
웹 애플리케이션과 동일한 폴더 구조에 있으므로 이미 MyBlazorServer 애플리케이션의 FirstClassLibrary 프로젝트를 참조한 것입니다.
이제 이 프로젝트 참조를 실행 취소하고 앞서 만든 NuGet 패키지에 대한 참조를 추가해 보겠습니다.
이러한 단계는 일반적인 구성이 아닙니다. 참조하는 애플리케이션과 동일한 폴더 또는 솔루션에 있는 라이브러리 프로젝트는 이전 연습에서 본 것처럼 프로젝트를 직접 참조할 수 있습니다.
Visual Studio에서 MyBlazorServer 프로젝트 이름을 두 번 클릭하여 MyBlazorServer.csproj 파일을 열거나 Visual Studio Code에서 이 파일을 엽니다.
MyBlazorServer.csproj 파일에서 다음 줄을 제거합니다.
<ProjectReference Include="..\FirstClassLibrary\FirstClassLibrary.csproj" />
MyBlazorServer.csproj와 동일한 폴더에서 다음 명령을 실행합니다.
dotnet add package My.FirstClassLibrary -s ..\FirstClassLibrary\bin\Debug
이 명령은 앞서 만든 NuGet 패키지를 그랩하고 로컬 NuGet 패키지 캐시에 복사본을 설치한 다음 MyBlazorServer.csproj 파일에서 해당 패키지에 대한 참조를 추가합니다.
작업 확인
새 패키지가 제대로 설치되었나요? FirstServer 애플리케이션을 시작하고 애플리케이션이 시작될 때 모달 창을 볼 수 있나요?
살펴보겠습니다.
Visual Studio에서 F5를 선택하거나 MyBlazorServer 폴더에서 다음 명령을 실행하여 MyBlazorServer 애플리케이션을 시작합니다.
dotnet run
브라우저에서 MyBlazorServer 애플리케이션의 홈페이지(
https://localhost:5000
)로 이동합니다.My first Modal dialog 대화 상자가 표시되었나요? 그렇다면 축하합니다. FirstClassLibrary 프로젝트를 올바르게 패키지하고 배포했습니다. 이제 모든 애플리케이션에서 새로 만든 NuGet 패키지를 참조하여 모달 창 구성 요소를 사용할 수 있습니다.