Condividi tramite


dotnet pack

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 una src cartella 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 Release per impostazione predefinita per i progetti i cui TargetFramework è impostato su net8.0 o versione successiva. La configurazione di compilazione predefinita è Debug per 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-servers

    Forza 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.

  • --force

    Forza 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-source

    Include i simboli di debug dei pacchetti NuGet oltre ai normali pacchetti NuGet nella directory di output. I file di origine sono inclusi nella src cartella all'interno del pacchetto di simboli.

  • --include-symbols

    Include i simboli di debug dei pacchetti NuGet oltre ai normali pacchetti NuGet nella directory di output.

  • --interactive

    Consente al comando di arrestare e attendere l'input o l'azione dell'utente. Ad esempio, per completare l'autenticazione.

  • --no-build

    Non compila il progetto prima della compressione. Imposta anche in modo implicito il flag --no-restore.

  • --no-dependencies

    Ignora i riferimenti da progetto a progetto e ripristina solo il progetto radice.

  • --no-restore

    Non esegue un ripristino implicito quando si esegue il comando .

  • --nologo

    Non 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 --output quando 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|--serviceable

    Imposta 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. on ignora il controllo dell'ambiente e abilita la registrazione del terminale. off ignora 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]e diag[nostic]. Per altre informazioni, vedere LoggerVerbosity.

  • --version-suffix <VERSION_SUFFIX>

    Definisce il valore per la VersionSuffix proprietà MSBuild. L'effetto di questa proprietà sulla versione del pacchetto dipende dai valori delle Version proprietà e VersionPrefix , come illustrato nella tabella seguente:

    Proprietà con valori Versione del pacchetto
    None 1.0.0
    Version $(Version)
    Solo VersionPrefix $(VersionPrefix)
    Solo VersionSuffix 1.0.0-$(VersionSuffix)
    VersionPrefix e VersionSuffix $(VersionPrefix)-$(VersionSuffix)

    Se si vuole usare --version-suffix, specificare VersionPrefix e non Version nel file di progetto. Ad esempio, se VersionPrefix è 0.1.2 e si passa --version-suffix rc.1 a dotnet pack, la versione del pacchetto sarà 0.1.2-rc.1.

    Se Version ha un valore e si passa --version-suffix a dotnet pack, il valore specificato per --version-suffix viene ignorato.

  • -?|-h|--help

    Stampa una descrizione di come usare il comando .

Esempi

  • Comprimere il progetto nella directory corrente:

    dotnet pack
    
  • Comprimere il app1 progetto:

    dotnet pack ~/projects/app1/project.csproj
    
  • Comprimere il progetto nella directory corrente e inserire i pacchetti risultanti nella nupkgs cartella :

    dotnet pack --output nupkgs
    
  • Comprimere il progetto nella directory corrente nella nupkgs cartella e ignorare il passaggio di compilazione:

    dotnet pack --no-build --output nupkgs
    
  • Con 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.0 con la PackageVersion proprietà MSBuild:

    dotnet pack -p:PackageVersion=2.1.0
    
  • Comprimere il progetto per un framework di destinazione specifico:

    dotnet pack -p:TargetFrameworks=net45
    
  • Comprimere il progetto e usare un runtime specifico (Windows) per l'operazione di ripristino:

    dotnet pack --runtime win-x64
    
  • Comprimere il progetto usando un file con estensione nuspec :

    dotnet pack ~/projects/app1/project.csproj -p:NuspecFile=~/projects/app1/project.nuspec -p:NuspecBasePath=~/projects/app1/nuget
    

    Per informazioni su come usare NuspecFile, NuspecBasePathe NuspecProperties, vedere le risorse seguenti: