Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo si applica a: ✔️ .NET 6 SDK e versioni successive
Nome
dotnet pack - Inserisce il codice in un pacchetto NuGet.
Synopsis
dotnet pack [<PROJECT>|<SOLUTION>]
[--artifacts-path <ARTIFACTS_DIR>] [-c|--configuration <CONFIGURATION>]
[--disable-build-servers] [--force] [--include-source] [--include-symbols]
[--interactive] [--no-build] [--no-dependencies] [--no-restore] [--nologo]
[-o|--output <OUTPUT_DIRECTORY>] [--runtime <RUNTIME_IDENTIFIER>]
[-s|--serviceable] [--tl:[auto|on|off]] [-v|--verbosity <LEVEL>]
[--version-suffix <VERSION_SUFFIX>]
dotnet pack -h|--help
Description
Il dotnet pack comando compila il progetto e crea pacchetti NuGet. Il risultato di questo comando è un pacchetto NuGet, ovvero un file con estensione nupkg .
Se si vuole generare un pacchetto contenente i simboli di debug, sono disponibili due opzioni:
-
--include-symbols: crea il pacchetto dei simboli. -
--include-source: crea il pacchetto dei simboli con unasrccartella all'interno dei file di origine.
Le dipendenze NuGet del progetto compresso vengono aggiunte al file con estensione nuspec , quindi vengono risolte correttamente quando il pacchetto viene installato. Se il progetto compresso contiene riferimenti ad altri progetti, gli altri progetti non vengono inclusi nel pacchetto. Attualmente, è necessario avere un pacchetto per ogni progetto se sono presenti dipendenze da progetto a progetto.
Per impostazione predefinita, dotnet pack compila prima il progetto. Se si desidera evitare questo comportamento, passare l'opzione --no-build . Questa opzione è spesso utile negli scenari di compilazione integrazione continua (CI) in cui si sa che il codice è stato compilato in precedenza.
Annotazioni
In alcuni casi, non è possibile eseguire la compilazione implicita. Ciò può verificarsi quando GeneratePackageOnBuild è impostato, per evitare una dipendenza ciclico tra destinazioni di compilazione e pack. La compilazione può anche non riuscire se si verifica un file bloccato o un altro problema.
È possibile fornire le proprietà di MSBuild al comando per il dotnet pack processo di compressione. Per altre informazioni, vedere Proprietà di destinazione del pacchetto NuGet e Informazioni di riferimento su MSBuild Command-Line. La sezione Esempi illustra come usare l'opzione MSBuild -p per un paio di scenari diversi.
Annotazioni
I progetti Web non sono comprimibili.
Ripristino implicito
Non è necessario eseguire dotnet restore perché viene eseguito in modo implicito da tutti i comandi che richiedono un ripristino, ad esempio dotnet new, dotnet build, dotnet run, dotnet test, dotnet publish e dotnet pack. Per disabilitare il ripristino implicito, usare l'opzione --no-restore.
Il comando dotnet restore è ancora utile in alcuni scenari in cui ha senso eseguire un ripristino esplicito, ad esempio le compilazioni di integrazione continua in Azure DevOps Services o in sistemi di compilazione che richiedono il controllo esplicito quando viene eseguito il ripristino.
Per informazioni su come gestire i feed NuGet, vedere la dotnet restore documentazione.
Questo comando supporta le opzioni dotnet restore passate nel formato continuo (ad esempio, --source). Le opzioni in formato breve, come -s, non sono supportate.
Download del manifesto del carico di lavoro
Quando si esegue questo comando, avvia un download in background asincrono dei manifesti pubblicitari per i carichi di lavoro. Se il download è ancora in esecuzione al termine di questo comando, il download viene arrestato. Per altre informazioni, vedere Manifesti pubblicitari.
Arguments
PROJECT | SOLUTION
Progetto o soluzione da comprimere. Si tratta di un percorso di un file csproj, vbproj o fsproj o di un file o di una directory della soluzione. Se non specificato, il comando cerca nella directory corrente un file di progetto o di soluzione.
Options
-
--artifacts-path <ARTIFACTS_DIR>Tutti i file di output di compilazione del comando eseguito verranno inseriti nelle sottocartelle nel percorso specificato, separati dal progetto. Per altre informazioni, vedere layout di output artefatti. Disponibile a partire da .NET 8 SDK.
-
-c|--configuration <CONFIGURATION>Definisce la configurazione di compilazione. Se si sviluppa con .NET 8 SDK o versione successiva, il comando usa la configurazione
Releaseper impostazione predefinita per i progetti i cui TargetFramework è impostato sunet8.0o versione successiva. La configurazione di compilazione predefinita èDebugper le versioni precedenti dell'SDK e per i framework di destinazione precedenti. È possibile eseguire l'override del valore predefinito nelle impostazioni del progetto o usando questa opzione. Per altre informazioni, vedere 'dotnet publish' usa la configurazione della versione e 'dotnet pack' usa la configurazione della versione. -
--disable-build-serversForza il comando a ignorare tutti i server di compilazione permanenti. Questa opzione consente di disabilitare in modo coerente l'uso della memorizzazione nella cache di compilazione, che forza una compilazione da zero. Una compilazione che non si basa sulle cache è utile quando le cache potrebbero essere danneggiate o errate per qualche motivo. Disponibile a partire da .NET 7 SDK.
--forceForza la risoluzione di tutte le dipendenze, anche se l'ultimo ripristino ha avuto esito positivo. Specificare questo flag equivale all'eliminazione del file di project.assets.json.
--include-sourceInclude i simboli di debug dei pacchetti NuGet oltre ai normali pacchetti NuGet nella directory di output. I file di origine sono inclusi nella
srccartella all'interno del pacchetto di simboli.--include-symbolsInclude i simboli di debug dei pacchetti NuGet oltre ai normali pacchetti NuGet nella directory di output.
-
--interactiveConsente al comando di arrestare e attendere l'input o l'azione dell'utente. Ad esempio, per completare l'autenticazione.
--no-buildNon compila il progetto prima della compressione. Imposta anche in modo implicito il flag
--no-restore.--no-dependenciesIgnora i riferimenti da progetto a progetto e ripristina solo il progetto radice.
--no-restoreNon esegue un ripristino implicito quando si esegue il comando .
--nologoNon visualizza il banner di avvio o il messaggio di copyright.
-o|--output <OUTPUT_DIRECTORY>Inserisce i pacchetti predefiniti nella directory specificata.
.NET 7.0.200 SDK
Nell'SDK 7.0.200, se si specifica l'opzione
--outputquando si esegue questo comando in una soluzione, l'interfaccia della riga di comando genererà un errore. Si tratta di una regressione che è stata risolta nella versione 7.0.201 e versioni successive di .NET SDK.
--runtime <RUNTIME_IDENTIFIER>Specifica il runtime di destinazione per cui ripristinare i pacchetti. Per un elenco degli identificatori di runtime (RID), vedere il catalogo RID .
-s|--serviceableImposta il flag serviceable nel pacchetto. Per altre informazioni, vedere .NET Blog: .NET Framework 4.5.1 Supporta gli aggiornamenti della sicurezza Microsoft per le librerie NuGet .NET.
-
--tl:[auto|on|off]Specifica se il Logger terminale deve essere usato per l'output di compilazione. Il valore predefinito è
auto, che prima di abilitare la registrazione del terminale verifica l'ambiente. Il controllo dell'ambiente verifica che il terminale sia in grado di usare le funzionalità di output moderne e non usa un output standard reindirizzato prima di abilitare il nuovo logger.onignora il controllo dell'ambiente e abilita la registrazione del terminale.offignora il controllo dell'ambiente e usa il logger di console predefinito.Terminale Logger mostra la fase di ripristino seguita dalla fase di compilazione. Durante ogni fase, i progetti attualmente in fase di compilazione vengono visualizzati nella parte inferiore del terminale. Ogni progetto che compila restituisce sia la destinazione MSBuild attualmente in fase di compilazione che la quantità di tempo impiegato per tale destinazione. È possibile cercare queste informazioni per altre informazioni sulla compilazione. Al termine della compilazione di un progetto, viene scritta una singola sezione "compilazione completata" che acquisisce:
- Nome del progetto compilato.
- Framework di destinazione (se multi-destinazione).
- Stato della compilazione.
- Output primario di tale compilazione (con collegamento ipertestuale).
- Qualsiasi diagnostica generata per il progetto.
Questa opzione è disponibile a partire da .NET 8.
-
-v|--verbosity <LEVEL>Imposta il livello di dettaglio del comando. I valori consentiti sono
q[uiet],m[inimal],n[ormal],d[etailed]ediag[nostic]. Per altre informazioni, vedere LoggerVerbosity. --version-suffix <VERSION_SUFFIX>Definisce il valore per la
VersionSuffixproprietà MSBuild. L'effetto di questa proprietà sulla versione del pacchetto dipende dai valori delleVersionproprietà eVersionPrefix, come illustrato nella tabella seguente:Proprietà con valori Versione del pacchetto None 1.0.0Version$(Version)Solo VersionPrefix$(VersionPrefix)Solo VersionSuffix1.0.0-$(VersionSuffix)VersionPrefixeVersionSuffix$(VersionPrefix)-$(VersionSuffix)Se si vuole usare
--version-suffix, specificareVersionPrefixe nonVersionnel file di progetto. Ad esempio, seVersionPrefixè0.1.2e si passa--version-suffix rc.1adotnet pack, la versione del pacchetto sarà0.1.2-rc.1.Se
Versionha un valore e si passa--version-suffixadotnet pack, il valore specificato per--version-suffixviene ignorato.-
-?|-h|--helpStampa una descrizione di come usare il comando .
Esempi
Comprimere il progetto nella directory corrente:
dotnet packComprimere il
app1progetto:dotnet pack ~/projects/app1/project.csprojComprimere il progetto nella directory corrente e inserire i pacchetti risultanti nella
nupkgscartella :dotnet pack --output nupkgsComprimere il progetto nella directory corrente nella
nupkgscartella e ignorare il passaggio di compilazione:dotnet pack --no-build --output nupkgsCon il suffisso della versione del progetto configurato come
<VersionSuffix>$(VersionSuffix)</VersionSuffix>nel file con estensione csproj , comprimere il progetto corrente e aggiornare la versione del pacchetto risultante con il suffisso specificato:dotnet pack --version-suffix "ci-1234"Impostare la versione del pacchetto su
2.1.0con laPackageVersionproprietà MSBuild:dotnet pack -p:PackageVersion=2.1.0Comprimere il progetto per un framework di destinazione specifico:
dotnet pack -p:TargetFrameworks=net45Comprimere il progetto e usare un runtime specifico (Windows) per l'operazione di ripristino:
dotnet pack --runtime win-x64Comprimere il progetto usando un file con estensione nuspec :
dotnet pack ~/projects/app1/project.csproj -p:NuspecFile=~/projects/app1/project.nuspec -p:NuspecBasePath=~/projects/app1/nugetPer informazioni su come usare
NuspecFile,NuspecBasePatheNuspecProperties, vedere le risorse seguenti: