(.NET) Nuget 이란?

C#/Winform 2017. 4. 15. 14:26
728x90

1.NuGet 이란

- NuGet은 주로 'NuPack'이라고 불리는 마이크로소프트의 개발 플렛폼에서 쓰이는 무료 또는 오픈소스의 패키지를 관리해주는 것으로 주로 C# 관련된 패키지가 많다.
- 오픈소스 기반의 라이브러리들을 솔루션에서 쉽게 가져와 쓸 수 있도록 해주는 도구라 할수 있겠다.
 * Nuget 사이트: https://www.nuget.org/

 2. NuGet 설치

- NuGet (https://www.nuget.org/) 사이트 에서 다운받아 설치 진행합니다.
- PC 에 설치된 프로그램을 기준으로 알아서 프로그램에 맞는 NuGet Package 를 선택하며 이를 설치 합니다.
- Visual Studio 에서 도구 메뉴에서 NuGet 패키지 관리자항목이 보이면
설치완료 된 것입니다.

3. NuGet 패키지 만들기

- 먼저 패키지 시킬 클래스라이브러리를 준비합니다. (예시 : KUtility)

- 아래와 같이 Nuget 폴더 밑에 버전을 관리할 목적의 Kutility 0.0.1 폴더, 그 하위에 NuGet Convention을 따르는 세 폴더 content, lib, tools 폴더를 만들어 놓습니다.

content : NuGet 에서 설치한 경우 프로젝트 루트에 들어갈 파일, 폴더(Test.txt)
lib : 실제 참조에 추가될 dll, net45 폴더는 dll 을 구동하기 위한 최소한의 프레임웍 버전을 표시하는 것
       으로 그  하위에 dll 을 복사합니다.(KUtility.dll)
tools : PowerShell 스크립트 파일들이 위치하는 곳으로 여기에 두면 NuGet 이용 설치 시 자동으로 실
            행됩니다.

-업로드할 패키지에 대한 메타정보를 가지고 있는 .nuspec 파일 생성 합니다.
- http://nuget.codeplex.com/releases/view/58939
   이곳에서 NuGet.exe 파일을 다운받아 환경변수에 추가합니다.
- cmd 창에서 프로젝트 폴더로 이동하여 nuget spec 명령어를 실행합니다.
   * 이 폴더 위치에서 실행시키는 이유는 *.csproj 파일 인식해서 nuspec 파일을 만들기 때문입니다.
 
C:\Projects\KFramework\KUtility>nuget spec
  'KUtility.nuspec'() 만들었습니다.

- KUtility.nuspec 파일을 열어 자신에 맞는 정보를 채워 넣습니다.

이때 기본값으로 두면 패키지 작업 시 아래와 같은 에러가 발생됩니다. 문제: 샘플 nuspec 값을 제거합니다. 설명: ProjectUrl에 대한 "http://PROJECT_URL_HERE_OR_DELETE_THIS_LINE" 값은 샘플 값이므로 제거해야 합니다. 솔루션: 적합한 값으로 바꾸거나 제거하고 패키지를 다시 빌드하십시오.

- 변경 후 NuGet\KUtility 0.0.1 폴더 하위에 이동시킵니다
- cmd 창으로 .nuspec 파일이 있는 곳  (NuGet/Kutility 0.0.1 폴더)으로 이동하여 Nuget Pack 
  명령어를 실행합니다.

 

- 아래 그림과 같이 .nupkg 파일이 생성됩니다.

4. NuGet 에 등록하기
- cmd 창에서 KUtility.0.0.1.nupkg 이 있는 폴더로 이동하여 nuget push 명령어를 실행합니다.

C:\Projects\KFramework\Nuget\KUtility 0.0.1>nuget push .\KUtility.0.0.1.nupkg c**ced2d-9e78-466f-b3aa-4b9**4fa46c6 
 KUtility 0.0.1() NuGet 갤러리 (https://www.nuget.org)에 푸시하는 중...패키지가 푸시되었습니다.

- Push 명령어 수행 시 마지막 guid 처럼 생긴 것은 NuGet 에서 부여된 API Key 입니다.
- API Key NuGet 사이트에 가입하여 인증 메일을 확인하면 부여됩니다.

- cmd 창이 아닌 웹사이트 상에서도 업로드 가능합니다.

- 버전이 올라간 경우 버전을 변경 후 다시 push 하게 되면 알아서 같은 패키지로 인식하여 등록 됩니다.

 

5. NuGet 에 등록된 내 라이브러리 가져오기

- 솔루션이나 프로젝트에서 도구-NuGet 패키지 관리자-패키지관리자 콘솔에서
install-package 명령어를 실행합니다.

- 명령어를 실행하면 내 라이브러리가 참조에 추가되고 폴더구성 시 content 항목은 프로젝트에 추가된걸 확인할 수 있습니다.

 

** NuGet Package Explorer 패키지를 만들어 바로 배포가 가능합니다. **
- Package metadata 에서 해당 dll 에 대한 내용을 넣고 CONTENT 메뉴를 통해 폴더를 추가하고  
- FILE-Publish 
하여 자신의 API Key 로 배포합니다.
- https://npe.codeplex.com/ 이곳에서 다운로드 가능합니다.

 

728x90
Posted by kjun.kr
,