NuGet 패키지 만들기

완료됨

Razor 클래스 라이브러리를 패키지하면 Blazor 프로젝트가 참조할 수 있는 이진 결과물이 만들어지고 Blazor 프로젝트에서 그 안의 구성 요소를 사용할 수 있습니다.

이전 단원에서 Blazor 애플리케이션에 대한 모달 대화 상자 창을 제공하는 모달 구성 요소가 포함된 Razor 클래스 라이브러리를 만들었습니다. 이 구성 요소를 다른 애플리케이션에서 사용하도록 공유하려면 이를 패키지하여 다른 개발자가 액세스할 수 있는 리포지토리 또는 폴더에 배치해야 합니다.

이 단원에서는 해당 프로젝트를 업데이트하고 NuGet 패키지를 생성합니다. 마지막으로 해당 NuGet 패키지를 Blazor 서버 애플리케이션에 배포합니다.

FirstClassLibrary에 패키지 속성 추가

먼저 FirstClassLibrary 프로젝트를 NuGet 패키지로 배포하기 위해 패키지할 수 있는 속성으로 업데이트합니다.

  1. Visual Studio 솔루션 탐색기에서 프로젝트를 두 번 클릭하거나 Visual Studio Code에서 MyClassLibrary.csproj를 열어 MyClassLibrary 프로젝트에 대한 프로젝트 파일을 엽니다.

  2. 파일 맨 위 근처의 <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 패키지에 대한 참조를 추가해 보겠습니다.

이러한 단계는 일반적인 구성이 아닙니다. 참조하는 애플리케이션과 동일한 폴더 또는 솔루션에 있는 라이브러리 프로젝트는 이전 연습에서 본 것처럼 프로젝트를 직접 참조할 수 있습니다.

  1. Visual Studio에서 MyBlazorServer 프로젝트 이름을 두 번 클릭하여 MyBlazorServer.csproj 파일을 열거나 Visual Studio Code에서 이 파일을 엽니다.

  2. MyBlazorServer.csproj 파일에서 다음 줄을 제거합니다.

    <ProjectReference Include="..\FirstClassLibrary\FirstClassLibrary.csproj" />

  3. MyBlazorServer.csproj와 동일한 폴더에서 다음 명령을 실행합니다.

    dotnet add package My.FirstClassLibrary -s ..\FirstClassLibrary\bin\Debug
    

    이 명령은 앞서 만든 NuGet 패키지를 그랩하고 로컬 NuGet 패키지 캐시에 복사본을 설치한 다음 MyBlazorServer.csproj 파일에서 해당 패키지에 대한 참조를 추가합니다.

작업 확인

새 패키지가 제대로 설치되었나요? FirstServer 애플리케이션을 시작하고 애플리케이션이 시작될 때 모달 창을 볼 수 있나요?

살펴보겠습니다.

  1. Visual Studio에서 F5를 선택하거나 MyBlazorServer 폴더에서 다음 명령을 실행하여 MyBlazorServer 애플리케이션을 시작합니다.

    dotnet run

  2. 브라우저에서 MyBlazorServer 애플리케이션의 홈페이지(https://localhost:5000)로 이동합니다.

    My first Modal dialog 대화 상자가 표시되었나요? 그렇다면 축하합니다. FirstClassLibrary 프로젝트를 올바르게 패키지하고 배포했습니다. 이제 모든 애플리케이션에서 새로 만든 NuGet 패키지를 참조하여 모달 창 구성 요소를 사용할 수 있습니다.