comando pack (CLI do NuGet)

Aplica-se a: criação de pacote • Versões com suporte: 2.7+

Cria um pacote NuGet com base no arquivo .nuspec ou de projeto especificado. O dotnet pack comando (consulte comandos dotnet) e msbuild -t:pack (consulte os destinos do MSBuild) podem ser usados como alternativas.

Importante

Use dotnet pack ou msbuild -t:pack para projetos baseados em PackageReference . A partir do NuGet versão 6.5+, o comando do pacote erro ao tentar empacotar esses tipos de projeto. Versões anteriores tentariam empacotar, mas o pacote gerado pode não estar correto. Em Mono, não há suporte para a criação de um pacote de um arquivo de projeto. Você também precisa ajustar caminhos não locais no .nuspec arquivo para caminhos no estilo Unix, pois nuget.exe não converte Windows próprios nomes de caminho.

Usage

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

em que <nuspecPath> especifique <projectPath> o .nuspec arquivo ou o arquivo de projeto, respectivamente.

Opções

  • -BasePath

    Define o caminho base dos arquivos definidos no arquivo .nuspec .

  • -Build

    Especifica que o projeto deve ser criado antes de compilar o pacote.

  • -ConfigFile

    O arquivo de configuração do NuGet a ser aplicado. Se não for especificado, %AppData%\NuGet\NuGet.Config (Windows), ~/.nuget/NuGet/NuGet.Config ou ~/.config/NuGet/NuGet.Config (Mac/Linux) será usado.

  • -Deterministic

    (7,9+) Compilar pacotes no modo determinístico. Isso produz pacotes idênticos a bits para a mesma entrada (código-fonte, arquivo de projeto, configuração de build), com uma ressalva conhecida de carimbos de data/hora. Veja DeterministicTimestamp como reproduzir com data/hora idênticas.

  • -DeterministicTimestamp

    (7,9+) Especifique um carimbo de data/hora usado como a data/hora de modificação do arquivo para todos os arquivos adicionados ao pacote NuGet. Pode ser uma data/hora no formato RFC 3339 (por 1996-12-19T16:39:57-08:00exemplo), pode ser o número de segundos não bissextos desde 00:00:00 UTC em 1 de janeiro de 1970 (também conhecido como a hora do Unix) ou pode ser a cadeia true de caracteres especial (padrão, usar a hora atual do relógio de parede) ou false não modificar os tempos de arquivo ao criar pacotes determinísticos. Essa opção será ignorada se Deterministic não estiver habilitada.

  • -Exclude

    Especifica um ou mais padrões curinga a serem excluídos ao criar um pacote. Para especificar mais de um padrão, repita o sinalizador -Exclude. Consulte o exemplo a seguir.

  • -ExcludeEmptyDirectories

    Impede a inclusão de diretórios vazios ao compilar o pacote.

  • -ForceEnglishOutput

    (3,5+) Força nuget.exe a executar usando uma cultura invariável baseada em inglês.

  • -?|-help

    Exibe as informações de ajuda para o comando.

  • -IncludeReferencedProjects

    Indica que o pacote compilado deve incluir projetos referenciados como dependências ou como parte do pacote. Se um projeto referenciado tiver um arquivo .nuspec correspondente que tenha o mesmo nome do projeto, esse projeto referenciado será adicionado como uma dependência. Caso contrário, o projeto referenciado será adicionado como parte do pacote.

  • -InstallPackageToOutputPath

    Especifique se o comando deve preparar o diretório de saída do pacote para dar suporte ao compartilhamento como feed.

  • -MinClientVersion

    Defina o atributo minClientVersion para o pacote criado. Esse valor substituirá o valor do atributo minClientVersion existente (se houver) no .nuspec arquivo.

  • -MSBuildPath

    (4.0+) Especifica o caminho do MSBuild a ser usado com o comando, tendo precedência sobre -MSBuildVersion.

  • -MSBuildVersion

    (3.2+) Especifica a versão do MSBuild a ser usada com este comando. Os valores com suporte são 4, 12, 14, 15,1, 15,3, 15,4, 15,5, 15,6, 15,7, 15,8, 15,9. Por padrão, o MSBuild em seu caminho é escolhido, caso contrário, ele usa como padrão a versão mais alta instalada do MSBuild.

  • -NoDefaultExcludes

    Impede a exclusão padrão de arquivos de pacote nuGet e arquivos e pastas começando com um ponto, como .svn e .gitignore.

  • -NonInteractive

    Suprime solicitações de entrada de usuário ou confirmações.

  • -NoPackageAnalysis

    Especifica que o pacote não deve executar a análise de pacote após a criação do pacote.

  • -OutputDirectory

    Especifica a pasta na qual o pacote criado é armazenado. Se nenhuma pasta for especificada, a pasta atual será usada.

  • -OutputFileNamesWithoutVersion

    Especifique se o comando deve preparar o nome de saída do pacote sem a versão.

  • -PackagesDirectory

    Especifica a pasta de pacotes.

  • -p|-Properties

    Deve aparecer por último na linha de comando após outras opções. Especifica uma lista de propriedades que substituem valores no arquivo project; consulte Common MSBuild Project Properties for property names. O argumento Propriedades aqui é uma lista de pares token=valor, separados por ponto-e-vírgula, em que cada ocorrência do $token$.nuspec arquivo será substituída pelo valor fornecido. Os valores podem ser cadeias de caracteres entre aspas. Observe que, para a propriedade "Configuração", o padrão é "Depurar". Para alterar para uma configuração de versão, use -Properties Configuration=Release. Em geral, as propriedades devem ser as mesmas usadas durante a compilação do projeto correspondente, a fim de evitar comportamentos potencialmente estranhos.

  • -SolutionDirectory

    Especifica o diretório da solução.

  • -Suffix

    (3.4.4+) Acrescenta um sufixo ao número de versão gerado internamente, normalmente usado para acrescentar build ou outros identificadores de pré-lançamento. Por exemplo, usar -suffix nightly criará um pacote com um número de versão como 1.2.3-nightly. Os sufixos devem começar com uma letra para evitar avisos, erros e possíveis incompatibilidades com versões diferentes do NuGet e do NuGet Gerenciador de Pacotes.

  • -SymbolPackageFormat

    Ao criar um pacote de símbolos, permite escolher entre o formato e symbols.nupkg o snupkg formato.

  • -Symbols

    Especifica que o pacote contém fontes e símbolos. Quando usado com um arquivo .nuspec, isso cria um arquivo de pacote NuGet regular e o pacote de símbolos correspondente. Por padrão, ele cria um pacote de símbolo herdado. O novo formato recomendado para pacotes de símbolos é .snupkg. Consulte Criando pacotes de símbolos (.snupkg).

  • -Tool

    Especifica que os arquivos de saída do projeto devem ser colocados na tools pasta dentro do pacote.

  • -Verbosity [normal|quiet|detailed]

    Especifica a quantidade de detalhes exibida na saída: normal (o padrão), quiet ou detailed.

  • -Version

    Substitui o número de versão do .nuspec arquivo.

Veja também variáveis de ambiente

Excluindo dependências de desenvolvimento

Alguns pacotes NuGet são úteis como dependências de desenvolvimento, que ajudam você a criar sua própria biblioteca, mas não são necessariamente necessários como dependências reais do pacote.

O pack comando ignorará package as entradas que packages.config têm o developmentDependency atributo definido como true. Essas entradas não serão incluídas como dependências no pacote criado.

Por exemplo, considere o seguinte packages.config arquivo no projeto de origem:

<?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>

Para este projeto, o pacote criado por nuget pack terá uma dependência e jQuerymicrosoft-web-helpers não netfx-Guard.

Suprimindo avisos do pacote

Embora seja recomendável que você resolva todos os avisos do NuGet durante as operações do pacote, em determinadas situações, suprimi-los é garantido.

Você pode conseguir isso da seguinte maneira:

nuget.exe package.nuspec -Properties NoWarn=NU5104

Exemplos

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"

Note

Não pack há suporte para o comando para projetos no estilo SDK, use dotnet pack ou msbuild -t:pack empacote esses projetos.