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 이용 설치 시 자동으로 실
행됩니다.
- http://nuget.codeplex.com/releases/view/58939
이곳에서 NuGet.exe 파일을 다운받아 환경변수에 추가합니다.
- cmd 창에서 프로젝트 폴더로 이동하여 nuget spec 명령어를 실행합니다.
* 이 폴더 위치에서 실행시키는 이유는 *.csproj 파일 인식해서 nuspec 파일을 만들기 때문입니다.
'KUtility.nuspec'을(를) 만들었습니다.
- KUtility.nuspec 파일을 열어 자신에 맞는 정보를 채워 넣습니다.
- 변경 후 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 명령어를 실행합니다.
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/ 이곳에서 다운로드 가능합니다.
'C# > Winform' 카테고리의 다른 글
(.NET) Control 에서 특정 메서드 호출하기 (0) | 2017.04.15 |
---|---|
(.NET) PrimaryKey 기준 Table Merge 하기 (0) | 2017.04.15 |
(.NET) Visual C# Code Snippets (0) | 2017.04.15 |
(.NET) visual studio 참조 표시 숨기기 (0) | 2017.04.15 |
(.NET) Method 명 알아내기 (0) | 2017.04.15 |