Comando pack (NuGet CLI)

Aplica-se a: criação de pacotes • Versões suportadas: 2.7+

Cria um pacote NuGet baseado no .nuspec ou ficheiro de projeto especificado. Os dotnet pack comandos (ver Comandos dotnet) e msbuild -t:pack (ver alvos MSBuild) podem ser usados como alternativas.

Importante

Utilizar dotnet pack ou msbuild -t:pack para projetos baseados em PackageReference . A partir da versão 6.5+ do NuGet, o comando pack apresenta erro ao tentar empacotar estes tipos de projeto. Versões anteriores tentavam embalar, mas o pacote gerado podia não estar correto. Em Mono, não é suportado criar um pacote a partir de um ficheiro de projeto. Também precisa de ajustar caminhos não locais no .nuspec ficheiro para caminhos ao estilo Unix, pois nuget.exe não converte Windows nomes de caminhos por si só.

Usage

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

onde <nuspecPath> e <projectPath> especificam o .nuspec ficheiro de projeto ou, respetivamente.

Opções

  • -BasePath

    Define o caminho base dos ficheiros definidos no ficheiro .nuspec .

  • -Build

    Especifica que o projeto deve ser construído antes de construir o pacote.

  • -ConfigFile

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

  • -Deterministic

    (7,9+) Construa pacotes em modo determinístico. Isto produz pacotes idênticos a bits para a mesma entrada (código-fonte, ficheiro de projeto, configuração de compilação), com uma ressalva conhecida de carimbos temporais. Veja DeterministicTimestamp como reproduzir com datas/horas idênticas.

  • -DeterministicTimestamp

    (7,9+) Especifique um carimbo temporal que seja usado como data/hora de modificação do ficheiro para todos os ficheiros adicionados ao pacote NuGet. Pode ser uma data/hora no formato RFC 3339 (como 1996-12-19T16:39:57-08:00), pode ser o número de segundos intercalares desde as 00:00:00 UTC de 1 de janeiro de 1970 (também conhecida como hora Unix), ou pode ser a cadeia true especial (padrão, usar a hora atual do relógio de parede), ou false não modificar os tempos dos ficheiros ao criar pacotes determinísticos. Esta opção é ignorada se Deterministic não estiver ativada.

  • -Exclude

    Especifica um ou mais padrões de wildcard a excluir ao criar um pacote. Para especificar mais do que um padrão, repita a bandeira -Exclude. Veja o exemplo abaixo.

  • -ExcludeEmptyDirectories

    Previne a inclusão de diretórios vazios na construção do pacote.

  • -ForceEnglishOutput

    (3,5+) Obriga nuget.exe a correr usando uma cultura invariante baseada no inglês.

  • -?|-help

    Exibe informações de ajuda para o comando.

  • -IncludeReferencedProjects

    Indica que o pacote construído deve incluir projetos referenciados, seja 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 é adicionado como parte do pacote.

  • -InstallPackageToOutputPath

    Especifique se o comando deve preparar o diretório de saída do pacote para suportar partilha como feed.

  • -MinClientVersion

    Defina o atributo minClientVersion para o pacote criado. Este valor substituirá o valor do atributo minClientVersion existente (se existir) no .nuspec ficheiro.

  • -MSBuildPath

    (4.0+) Especifica o caminho do MSBuild a usar 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 suportados são 4, 12, 14, 15,1, 15,3, 15,4, 15,5, 15,6, 15,7, 15,8, 15,9. Por defeito, o MSBuild no teu caminho é escolhido, caso contrário passa para a versão mais alta instalada do MSBuild.

  • -NoDefaultExcludes

    Previne a exclusão por defeito de ficheiros e pastas de pacotes NuGet que começam por um ponto, como .svn e .gitignore.

  • -NonInteractive

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

  • -NoPackageAnalysis

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

  • -OutputDirectory

    Especifica a pasta onde o pacote criado está armazenado. Se não for especificada a pasta, a pasta atual é utilizada.

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

    Deverá aparecer por último na linha de comandos depois de outras opções. Especifica uma lista de propriedades que sobrepõem valores no ficheiro do project; veja Common MSBuild Project Properties para nomes de propriedades. O argumento Properties aqui é uma lista de pares token=valor, separados por ponto e vírgula, onde cada ocorrência de $token$ no .nuspec ficheiro será substituída pelo valor dado. Os valores podem ser cadeias de caracteres entre aspas. Note que para a propriedade "Configuration", o padrão é "Debug". Para mudar para uma configuração de Release, use -Properties Configuration=Release. Em geral, as Propriedades devem ser as mesmas que foram usadas durante a construção correspondente do projeto, para evitar comportamentos potencialmente estranhos.

  • -SolutionDirectory

    Especifica o diretório de soluções.

  • -Suffix

    (3.4.4+) Adiciona um sufixo ao número de versão gerado internamente, normalmente usado para acrescentar identificadores de compilação ou outros pré-lançamento. Por exemplo, usar -suffix nightly irá 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 potenciais incompatibilidades com diferentes versões do NuGet e do NuGet Gestor de Pacotes.

  • -SymbolPackageFormat

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

  • -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 defeito, cria um pacote de símbolos legado. O novo formato recomendado para pacotes de símbolos é .snupkg. Consulte Criação de pacotes de símbolos (.snupkg).

  • -Tool

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

  • -Verbosity [normal|quiet|detailed]

    Especifica a quantidade de detalhes exibidos na saída: normal (o padrão), quietou detailed.

  • -Version

    Sobrepõe o número de versão do .nuspec ficheiro.

Consulte também Variáveis de ambiente

Excluindo dependências de desenvolvimento

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

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

Por exemplo, considere o seguinte packages.config ficheiro no projeto fonte:

<?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 em jQuery e microsoft-web-helpers mas não netfx-Guard.

Suprimir avisos de matilha

Embora seja recomendado que resolva todos os avisos NuGet durante as operações da matilha, em certas situações é necessário suprimi-los.

Pode conseguir isso da seguinte forma:

nuget.exe pack 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

O pack comando para projetos ao estilo SDK não é suportado, use dotnet pack ou msbuild -t:pack embale esses projetos em vez disso.