Comando pack (interfaccia della riga di comando di NuGet)

Si applica a: creazione di pacchetti • Versioni supportate: 2.7+

Crea un pacchetto NuGet basato sul file di progetto o con estensione nuspec specificato. Il dotnet pack comando (vedere i comandi dotnet) e msbuild -t:pack (vedere destinazioni MSBuild) può essere usato come alternative.

Importante

Usare dotnet pack o msbuild -t:pack per i progetti basati su PackageReference . A partire da NuGet versione 6.5+, il comando pack genererà un errore durante il tentativo di comprimere questi tipi di progetto. Le versioni precedenti tentano di eseguire il pacchetto, ma il pacchetto generato potrebbe non essere corretto. In Mono la creazione di un pacchetto da un file di progetto non è supportata. È anche necessario modificare i percorsi non locali nel .nuspec file in percorsi in stile Unix, perché nuget.exe non converte i percorsi di Windows stessi.

Utilizzo

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

dove <nuspecPath> e <projectPath> specificare rispettivamente il .nuspec file di progetto o .

Opzioni

  • -BasePath

    Imposta il percorso di base dei file definiti nel file con estensione nuspec .

  • -Build

    Specifica che il progetto deve essere compilato prima di compilare il pacchetto.

  • -ConfigFile

    File di configurazione NuGet da applicare. Se non specificato, %AppData%\NuGet\NuGet.Config viene usato (Windows) o ~/.nuget/NuGet/NuGet.Config~/.config/NuGet/NuGet.Config (Mac/Linux).

  • -Exclude

    Specifica uno o più modelli con caratteri jolly da escludere durante la creazione di un pacchetto. Per specificare più modelli, ripetere il flag -Exclude. Vedi l'esempio seguente.

  • -ExcludeEmptyDirectories

    Impedisce l'inclusione di directory vuote durante la compilazione del pacchetto.

  • -ForceEnglishOutput

    (3.5+) Forza nuget.exe l'esecuzione usando impostazioni cultura invarianti basate sull'inglese.

  • -?|-help

    Visualizza le informazioni della Guida per il comando .

  • -IncludeReferencedProjects

    Indica che il pacchetto compilato deve includere progetti di riferimento come dipendenze o come parte del pacchetto. Se un progetto a cui si fa riferimento ha un file corrispondente .nuspec con lo stesso nome del progetto, tale progetto a cui si fa riferimento viene aggiunto come dipendenza. In caso contrario, il progetto a cui si fa riferimento viene aggiunto come parte del pacchetto.

  • -InstallPackageToOutputPath

    Specificare se il comando deve preparare la directory di output del pacchetto per supportare la condivisione come feed.

  • -MinClientVersion

    Impostare l'attributo minClientVersion per il pacchetto creato. Questo valore eseguirà l'override del valore dell'attributo minClientVersion esistente (se presente) nel .nuspec file.

  • -MSBuildPath

    (4.0+) Specifica il percorso di MSBuild da usare con il comando , che ha la precedenza su -MSBuildVersion.

  • -MSBuildVersion

    (3.2+) Specifica la versione di MSBuild da usare con questo comando. I valori supportati sono 4, 12, 14, 15.1, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9. Per impostazione predefinita, MSBuild nel percorso è selezionato. In caso contrario, per impostazione predefinita viene selezionata la versione più recente installata di MSBuild.

  • -NoDefaultExcludes

    Impedisce l'esclusione predefinita di file e file e cartelle del pacchetto NuGet a partire da un punto, ad esempio .svn e .gitignore.

  • -NonInteractive

    Elimina le richieste di input o conferme dell'utente.

  • -NoPackageAnalysis

    Specifica che pack non deve eseguire l'analisi del pacchetto dopo la compilazione di quest'ultimo.

  • -OutputDirectory

    Specifica la cartella in cui è archiviato il pacchetto creato. Se non viene specificata alcuna cartella, viene utilizzata la cartella corrente.

  • -OutputFileNamesWithoutVersion

    Specificare se il comando deve preparare il nome dell'output del pacchetto senza la versione.

  • -PackagesDirectory

    Specifica la cartella packages.

  • -p|-Properties

    Dovrebbe essere visualizzato per ultimo nella riga di comando dopo altre opzioni. Specifica un elenco di proprietà che eseguono l'override dei valori nel file di progetto; vedere Proprietà comuni del progetto MSBuild per i nomi delle proprietà. L'argomento Proprietà di seguito è riportato un elenco di coppie token=valore, separate da punto e virgola, in cui ogni occorrenza di $token$ nel .nuspec file verrà sostituita con il valore specificato. I valori possono essere stringhe tra virgolette. Si noti che per la proprietà "Configuration", il valore predefinito è "Debug". Per passare a una configurazione versione, usare -Properties Configuration=Release. In generale, le proprietà devono essere le stesse usate durante la compilazione del progetto corrispondente, per evitare comportamenti potenzialmente strani.

  • -SolutionDirectory

    Specifica la directory della soluzione.

  • -Suffix

    (3.4.4+) Aggiunge un suffisso al numero di versione generato internamente, in genere usato per l'aggiunta di build o altri identificatori di versione non definitiva. Ad esempio, l'uso -suffix nightly di creerà un pacchetto con un numero di versione come 1.2.3-nightly. I suffissi devono iniziare con una lettera per evitare avvisi, errori e potenziali incompatibilità con versioni diverse di NuGet e nuGet Gestione pacchetti.

  • -SymbolPackageFormat

    Quando si crea un pacchetto di simboli, consente di scegliere tra il snupkg formato e symbols.nupkg .

  • -Symbols

    Specifica che il pacchetto contiene origini e simboli. Se usato con un .nuspec file, viene creato un normale file di pacchetto NuGet e il pacchetto di simboli corrispondente. Per impostazione predefinita, crea un pacchetto di simboli legacy. Il nuovo formato consigliato per i pacchetti di simboli è l'estensione snupkg. Vedere Creazione di pacchetti di simboli (estensione snupkg).

  • -Tool

    Specifica che i file di output del progetto devono essere inseriti nella tools cartella all'interno del pacchetto.

  • -Verbosity [normal|quiet|detailed]

    Specifica la quantità di dettagli visualizzati nell'output: normal (impostazione predefinita), quieto detailed.

  • -Version

    Esegue l'override del numero di versione dal .nuspec file.

Vedere anche Variabili di ambiente

Esclusione delle dipendenze di sviluppo

Alcuni pacchetti NuGet sono utili come dipendenze di sviluppo, che consentono di creare una libreria personalizzata, ma non sono necessariamente necessarie come dipendenze effettive del pacchetto.

Il pack comando ignorerà package le voci in packages.config con l'attributo developmentDependency impostato su true. Queste voci non verranno incluse come dipendenze nel pacchetto creato.

Si consideri ad esempio il file seguente packages.config nel progetto di origine:

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

Per questo progetto, il pacchetto creato da nuget pack avrà una dipendenza da jQuery e microsoft-web-helpers ma non netfx-Guard.

Eliminazione degli avvisi di pacchetto

Sebbene sia consigliabile risolvere tutti gli avvisi NuGet durante le operazioni del pacchetto, in determinate situazioni è necessario eliminarli.

È possibile ottenere questo risultato nel modo seguente:

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

Esempi

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"

Nota

Il pack comando per i progetti in stile SDK non è supportato, usare dotnet pack o msbuild -t:pack per comprimere questi progetti.