GitHub를 사용하여 NuGet 패키지 게시
PAT(Personal Access Token)를 사용하여 GitHub의 리포지토리에 NuGet을 게시할 수 있으므로 팀/조직만(기본적으로 PAT에 액세스할 수 있는 모든 사람) 패키지를 사용할 수 있습니다.
시작하자,
1. 새 프로젝트 만들기
Dotnet CLI를 사용하거나 Visual Studio 2019에서 새 .Net 프로젝트를 만듭니다.
이 블로그에서는 빈 데모 프로젝트를 사용하고 있습니다. 참고: 당연히 기존 프로젝트를 사용하고 게시할 수도 있습니다.
프로젝트를 게시할 준비가 되면 프로젝트의 .csproj 파일을 열고 PropertyGroup 태그 안에 패키지 설명을 추가합니다.
```
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<PackageId>NugetDemo</PackageId>
<Version>1.0.0</Version>
<Authors>RK</Authors>
<Company>rkblog</Company>
<PackageDescription>Demo Description</PackageDescription>
<RepositoryUrl>https://github.com/rskhan167/NugetDemo</RepositoryUrl>
</PropertyGroup>
```
GitHub에서 새 리포지토리를 만들고 RepositoryUrl 태그 안에 해당 URL을 추가하는 것을 잊지 마십시오.
이제 프로젝트가 준비되었습니다.
2. 프로젝트 포장
이제 게시할 수 있는 .nupkg 파일을 갖도록 프로젝트를 패키징해야 합니다.
그리고 이것은 매우 간단합니다. 우리는 이것을 두 가지 방법으로 할 수 있습니다.
dotnet pack --configuration Release
프로젝트의 bin 디렉토리에 .nupkg 파일이 생성됩니다.
3. 패키지 게시
GitHub에 패키지를 게시하려면 먼저 개인 액세스 토큰을 생성하고 두 번째로 GitHub 패키지에 인증해야 합니다. PAT를 생성하려면 official github 문서를 참조하십시오.
이제 GitHub 패키지에 인증하려면 프로젝트 디렉터리에 nuget.config 파일을 만들고 아래와 같이 패키지 소스 및 패키지 소스 자격 증명을 추가해야 합니다.
PAT를 생성하고 nuget.config 파일을 추가한 후 이 명령을 실행합니다.
dotnet nuget push "bin/Release/NugetDemo.1.0.0.nupkg" --api-key YOUR_GITHUB_PAT --source "github"
짜잔! 패키지가 게시되었습니다.
GitHub 프로필에서 패키지를 볼 수 있습니다.
하지만 아직 끝나지 않았습니다. 다음 .Net 프로젝트에서 이 패키지를 종속성으로 어떻게 사용합니까? 다시 두 가지 방법으로 이를 달성할 수 있습니다. 명령줄에서 이 패키지를 설치하거나 Visual Studio 2019의 NuGet 패키지 관리자에서 설치할 수 있습니다.
4. 패키지 설치
패키지에 액세스하려면 Nuget 관리자에서 패키지 소스를 언급해야 합니다. 패키지 소스를 추가하려면 이 공식Microsoft doc을 참조하십시오.
참고: 패키지 이름과 패키지 소스는 nuget.config 파일에 있는 것과 정확히 동일해야 합니다. Nuget 패키지 관리자에서 패키지 소스를 추가하기 전에 앞서 생성한 nuget.config 파일을 참조하십시오.
그게 다야.
이제 프로젝트를 NuGet 패키지로 생성 및 게시하고 다음 .Net 프로젝트에서 조직/팀 내에서 사용할 수 있습니다.
이 기사를 ❤️ 다른 사람들과 공유해주세요.
읽어주셔서 감사합니다 ❤️
Reference
이 문제에 관하여(GitHub를 사용하여 NuGet 패키지 게시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rasoolk16/publish-nuget-packages-with-github-598h텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)