pack 명령(NuGet CLI)

적용 대상: 패키지 만들기 • 지원되는 버전: 2.7 이상

지정된 .nuspec 또는 프로젝트 파일을 기반으로 NuGet 패키지를 만듭니다. dotnet pack 명령(dotnet 명령 참조) 및 msbuild -t:pack (MSBuild 대상 참조) 대체 명령으로 사용할 수 있습니다.

Important

PackageReference 기반 프로젝트를 사용 dotnet pack 하거나 msbuild -t:pack사용합니다. NuGet 버전 6.5 이상부터 이러한 프로젝트 형식을 압축하려고 할 때 pack 명령이 오류 발생합니다. 이전 버전에서는 압축을 시도했지만 생성된 패키지가 올바르지 않을 수 있습니다. Mono에서 프로젝트 파일에서 패키지를 만드는 것은 지원되지 않습니다. 또한 nuget.exe Windows 경로 .nuspec 이름 자체를 변환하지 않으므로 파일의 로컬이 아닌 경로를 Unix 스타일 경로로 조정해야 합니다.

사용

nuget pack <nuspecPath | projectPath> [options] [-Properties ...]

<projectPath> 여기서 <nuspecPath> 또는 프로젝트 파일을 각각 지정 .nuspec 합니다.

옵션

  • -BasePath

    .nuspec 파일에 정의된 파일의 기본 경로를 설정합니다.

  • -Build

    패키지를 빌드하기 전에 프로젝트를 빌드해야 되도록 지정합니다.

  • -ConfigFile

    적용할 NuGet 구성 파일입니다. 지정 %AppData%\NuGet\NuGet.Config 하지 않으면(Windows) 또는 ~/.nuget/NuGet/NuGet.Config~/.config/NuGet/NuGet.Config (Mac/Linux)가 사용됩니다.

  • -Exclude

    패키지를 만들 때 제외할 하나 이상의 야생카드 패턴을 지정합니다. 둘 이상의 패턴을 지정하려면 -Exclude 플래그를 반복합니다. 아래 예제를 참조하세요.

  • -ExcludeEmptyDirectories

    패키지를 빌드할 때 빈 디렉터리를 포함할 수 없습니다.

  • -ForceEnglishOutput

    (3.5 이상) 고정 영어 기반 문화권을 사용하여 nuget.exe 강제로 실행합니다.

  • -?|-help

    명령에 대한 도움말 정보를 표시합니다.

  • -IncludeReferencedProjects

    빌드된 패키지에 참조된 프로젝트를 종속성 또는 패키지의 일부로 포함해야 임을 나타냅니다. 참조된 프로젝트에 프로젝트와 이름이 같은 해당 .nuspec 파일이 있는 경우 참조된 프로젝트가 종속성으로 추가됩니다. 그렇지 않으면 참조된 프로젝트가 패키지의 일부로 추가됩니다.

  • -InstallPackageToOutputPath

    명령이 피드로 공유를 지원하도록 패키지 출력 디렉터리를 준비해야 하는지 지정합니다.

  • -MinClientVersion

    만든 패키지에 대한 minClientVersion 특성을 설정합니다. 이 값은 파일의 기존 minClientVersion 특성(있는 경우)의 값을 재정의 .nuspec 합니다.

  • -MSBuildPath

    (4.0 이상) 명령에 사용할 MSBuild의 경로를 지정하여 우선 순위를 -MSBuildVersion지정합니다.

  • -MSBuildVersion

    (3.2 이상) 이 명령에 사용할 MSBuild 버전을 지정합니다. 지원되는 값은 4, 12, 14, 15.1, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9입니다. 기본적으로 경로의 MSBuild가 선택되며, 그렇지 않으면 기본적으로 설치된 가장 높은 버전의 MSBuild로 설정됩니다.

  • -NoDefaultExcludes

    NuGet 패키지 파일과 파일 및 폴더가 점으로 시작하는 경우(예 .svn.gitignore: 및 .

  • -NonInteractive

    사용자 입력 또는 확인에 대한 프롬프트를 표시하지 않습니다.

  • -NoPackageAnalysis

    패키지를 빌드한 후 팩에서 패키지 분석을 실행하지 않아야 함을 지정합니다.

  • -OutputDirectory

    만든 패키지가 저장되는 폴더를 지정합니다. 지정한 폴더가 없으면 현재 폴더가 사용됩니다.

  • -OutputFileNamesWithoutVersion

    명령이 버전 없이 패키지 출력 이름을 준비해야 하는지 지정합니다.

  • -PackagesDirectory

    패키지 폴더를 지정합니다.

  • -p|-Properties

    명령줄에서 다른 옵션 뒤의 마지막에 표시되어야 합니다. 프로젝트 파일의 값을 재정의하는 속성 목록을 지정합니다. 속성 이름에 대한 일반적인 MSBuild 프로젝트 속성을 참조하세요. 여기서 Properties 인수는 세미콜론으로 구분된 token=value 쌍 목록입니다. 여기서 파일의 $token$.nuspec 각 항목은 지정된 값으로 바뀝니다. 값은 따옴표로 된 문자열일 수 있습니다. "구성" 속성의 기본값은 "디버그"입니다. 릴리스 구성으로 변경하려면 .를 사용합니다 -Properties Configuration=Release. 일반적으로 속성은 잠재적으로 이상한 동작을 방지하기 위해 해당 프로젝트 빌드 중에 사용된 것과 동일해야 합니다.

  • -SolutionDirectory

    솔루션 디렉터리를 지정합니다.

  • -Suffix

    (3.4.4 이상) 일반적으로 빌드 또는 기타 시험판 식별자를 추가하는 데 사용되는 내부적으로 생성된 버전 번호에 접미사를 추가합니다. 예를 들어 사용 -suffix nightly 은 버전 번호(예: 1.2.3-nightly.)를 사용하여 패키지를 만듭니다. 접미사는 다른 버전의 NuGet 및 NuGet 패키지 관리자 대한 경고, 오류 및 잠재적인 비호환성을 방지하기 위해 문자로 시작해야 합니다.

  • -SymbolPackageFormat

    기호 패키지를 만들 때 형식과 symbols.nupkg 형식 중 snupkg 에서 선택할 수 있습니다.

  • -Symbols

    패키지에 원본 및 기호가 포함되도록 지정합니다. 파일과 함께 .nuspec 사용하면 일반 NuGet 패키지 파일과 해당 기호 패키지가 만들어집니다. 기본적으로 레거시 기호 패키지를 만듭니다. 기호 패키지에 대한 새 권장 형식은 .snupkg입니다. 기호 패키지(.snupkg) 만들기를 참조하세요.

  • -Tool

    프로젝트의 출력 파일을 패키지 내의 폴더에 tools 배치할 것을 지정합니다.

  • -Verbosity [normal|quiet|detailed]

    출력 normal 에 표시되는 세부 정보의 양을 지정합니다(기본값) quiet또는 detailed.

  • -Version

    파일에서 버전 번호를 재정의합니다 .nuspec .

환경 변수도 참조 하세요.

개발 종속성 제외

일부 NuGet 패키지는 개발 종속성으로 유용하므로 고유한 라이브러리를 작성하는 데 도움이 되지만 실제 패키지 종속성으로 반드시 필요한 것은 아닙니다.

pack 명령은 특성이 developmentDependency .로 packages.config 설정된 항목을 무시 package 합니다true. 이러한 항목은 만든 패키지에 종속성으로 포함되지 않습니다.

예를 들어 원본 프로젝트에서 다음 packages.config 파일을 고려합니다.

<?xml version="1.0" encoding="utf-8"?>
<packages>
    <package id="jQuery" version="1.5.2" />
    <package id="netfx-Guard" version="1.3.3.2" developmentDependency="true" />
    <package id="microsoft-web-helpers" version="1.15" />
</packages>

이 프로젝트의 경우 만든 nuget pack 패키지에는 종속성이 있지만 종속성은 jQuerymicrosoft-web-helpers 없습니다 netfx-Guard.

팩 경고 표시 안 함

팩 작업 중에 모든 NuGet 경고를 해결하는 것이 권장되지만, 특정 상황에서는 이를 표시하지 않는 것이 좋습니다.

다음과 같은 방법으로 이 작업을 수행할 수 있습니다.

nuget.exe pack package.nuspec -Properties NoWarn=NU5104

예제

nuget pack

nuget pack foo.nuspec

nuget pack foo.csproj

nuget pack foo.csproj -Properties Configuration=Release

nuget pack foo.csproj -Build -Symbols -Properties owners=janedoe,xiaop;version="1.0.5"

# Create a package from project foo.csproj, using MSBuild version 12 to build the project
nuget pack foo.csproj -Build -Symbols -MSBuildVersion 12 -Properties owners=janedoe,xiaop;version="1.0.5"

# Create a package from project foo.nuspec and the corresponding symbol package using the new recommended format .snupkg
nuget pack foo.nuspec -Symbols -SymbolPackageFormat snupkg

nuget pack foo.nuspec -Version 2.1.0

nuget pack foo.nuspec -Version 1.0.0 -MinClientVersion 2.5

nuget pack Package.nuspec -exclude "*.exe" -exclude "*.bat"

참고 항목

pack SDK 스타일 프로젝트에 대한 명령은 지원되지 않으며, 이 프로젝트를 대신 사용 dotnet pack 하거나 msbuild -t:pack 압축할 수 없습니다.