다음을 통해 공유


.NET CLI를 사용하여 NuGet 패키지를 만드는 방법

비고

다음은 Unix를 사용하는 명령줄 샘플을 보여줍니다. dotnet pack 여기에 표시된 명령은 Windows에서 동일한 방식으로 작동합니다.

.NET Standard 및 .NET Core 라이브러리는 NuGet 패키지로 배포되어야 합니다. 실제로 모든 .NET Standard 라이브러리가 배포되고 사용되는 방식입니다. 이 작업은 명령으로 가장 쉽게 수행할 수 있습니다 dotnet pack .

NuGet을 통해 배포하려는 멋진 새 라이브러리를 작성한다고 상상해 보십시오. 이를 위해 플랫폼 간 도구를 사용하여 NuGet 패키지를 만들 수 있습니다. 다음 예제에서는 대상으로 하는 SuperAwesomeLibrary 라는 라이브러리를 가정합니다 netstandard1.0.

전이적 종속성이 있는 경우, 즉 다른 패키지에 종속된 프로젝트는 NuGet 패키지를 만들기 전에 명령을 사용하여 전체 솔루션에 dotnet restore 대한 패키지를 복원해야 합니다. 이렇게 하지 않으면 명령이 dotnet pack 제대로 작동하지 않습니다.

dotnet restore, dotnet new, dotnet build, dotnet run, dotnet testdotnet publish같은 복원이 필요한 모든 명령에서 암시적으로 실행되므로 dotnet pack 실행할 필요가 없습니다. 암시적 복원을 사용하지 않도록 설정하려면 --no-restore 옵션을 사용합니다.

dotnet restore 명령은 Azure DevOps Services의 연속 통합 빌드 또는 복원이 언제 발생할지를 명시적으로 제어해야 하는 빌드 시스템처럼 명시적인 복원이 적합한 특정 시나리오에서 여전히 유용합니다.

NuGet 피드를 관리하는 방법에 대한 자세한 내용은 dotnet restore 설명서참조하세요.

패키지를 복원한 후 라이브러리가 있는 디렉터리로 이동할 수 있습니다.

cd src/SuperAwesomeLibrary

그런 다음 명령줄에서 단일 명령을 입력하면 됩니다.

dotnet pack

이제 /bin/Debug 폴더가 다음과 같이 표시됩니다.

$ ls bin/Debug
netstandard1.0/
SuperAwesomeLibrary.1.0.0.nupkg
SuperAwesomeLibrary.1.0.0.symbols.nupkg

이렇게 하면 디버그할 수 있는 패키지가 생성됩니다. 릴리스 이진 파일로 NuGet 패키지를 빌드하려면 --configuration (또는 -c) 스위치를 추가하고 release를 인수로 사용하기만 하면 됩니다.

dotnet pack --configuration release

/bin 폴더에는 이제 릴리스 바이너리가 포함된 NuGet 패키지를 담고 있는 release 폴더가 있습니다.

$ ls bin/release
netstandard1.0/
SuperAwesomeLibrary.1.0.0.nupkg
SuperAwesomeLibrary.1.0.0.symbols.nupkg

이제 NuGet 패키지를 게시하는 데 필요한 파일이 있습니다.

dotnet packdotnet publish를 혼동하지 마세요.

어떤 시점에서도 dotnet publish명령어가 관련되지 않는다는 점에 유의해야 합니다. 이 dotnet publish 명령은 NuGet을 통해 배포 및 사용할 NuGet 패키지를 생성하기 위한 것이 아니라 동일한 번들에 모든 종속성을 포함하여 애플리케이션을 배포하기 위한 것입니다.

참고하십시오