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 come1.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 esymbols.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),quiet
odetailed
.-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.