dotnet packdotnet pack

Le informazioni contenute in questo argomento sono valide per: ✓ .NET Core 1.x SDK .NET Core 2.x SDKThis topic applies to: ✓ .NET Core 1.x SDK .NET Core 2.x SDK

nomeName

dotnet pack: comprime il codice in un pacchetto NuGet.dotnet pack - Packs the code into a NuGet package.

RiepilogoSynopsis

dotnet pack [<PROJECT>] [-c|--configuration] [--force] [--include-source] [--include-symbols] [--no-build] [--no-dependencies]
    [--no-restore] [-o|--output] [--runtime] [-s|--serviceable] [-v|--verbosity] [--version-suffix]
dotnet pack [-h|--help]

DescriptionDescription

Il comando dotnet pack consente di compilare il progetto e creare pacchetti NuGet.The dotnet pack command builds the project and creates NuGet packages. Il risultato di questo comando è un pacchetto NuGet.The result of this command is a NuGet package. Se l'opzione --include-symbols è presente, viene creato un altro pacchetto contenente i simboli di debug.If the --include-symbols option is present, another package containing the debug symbols is created.

Le dipendenze NuGet del progetto compresso vengono aggiunte al file con estensione nuspec, in modo da poter essere risolte durante l'installazione del pacchetto.NuGet dependencies of the packed project are added to the .nuspec file, so they're properly resolved when the package is installed. I riferimenti da progetto a progetto non sono inseriti all'interno del progetto.Project-to-project references aren't packaged inside the project. Attualmente è necessario disporre di un pacchetto per ogni progetto se sono presenti dipendenze da progetto a progetto.Currently, you must have a package per project if you have project-to-project dependencies.

Per impostazione predefinita, dotnet pack compila prima il progetto.By default, dotnet pack builds the project first. Se si vuole evitare questo comportamento, passare l'opzione --no-build.If you wish to avoid this behavior, pass the --no-build option. Questa opzione è in genere utile negli scenari di compilazione di integrazione continua (CI, Continuous Integration) in cui si sa che il codice è stato compilato in precedenza.This option is often useful in Continuous Integration (CI) build scenarios where you know the code was previously built.

È possibile aggiungere proprietà MSBuild al comando dotnet pack per il processo di compressione.You can provide MSBuild properties to the dotnet pack command for the packing process. Per altre informazioni, vedere NuGet metadata properties (Proprietà dei metadati NuGet) e MSBuild Command-Line Reference (Informazioni di riferimento sulla riga di comando di MSBuild).For more information, see NuGet metadata properties and the MSBuild Command-Line Reference. La sezione Esempi illustra come usare l'opzione di MSBuild -p per due diversi scenari.The Examples section shows how to use the MSBuild -p switch for a couple of different scenarios.

Per impostazione predefinita, non è possibile creare un pacchetto dei progetti Web.Web projects aren't packable by default. Per eseguire l'override del comportamento predefinito, aggiungere la proprietà seguente al file con estensione csproj:To override the default behavior, add the following property to your .csproj file:

<PropertyGroup>
   <IsPackable>true</IsPackable>
</PropertyGroup>

Nota

A partire da .NET Core 2.0, non è necessario eseguire dotnet restore perché viene eseguito in modo implicito da tutti i comandi, ad esempio dotnet build e dotnet run, che richiedono un ripristino.Starting with .NET Core 2.0, you don't have to run dotnet restore because it's run implicitly by all commands, such as dotnet build and dotnet run, that require a restore to occur. È ancora un comando valido 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 del momento in cui viene eseguito il ripristino.It's still a valid command in certain scenarios where doing an explicit restore makes sense, such as continuous integration builds in Azure DevOps Services or in build systems that need to explicitly control the time at which the restore occurs.

Questo comando supporta anche le opzioni dotnet restore passate nel formato lungo (ad esempio, --source).This command also supports the dotnet restore options when passed in the long form (for example, --source). Le opzioni in formato breve, come -s, non sono supportate.Short form options, such as -s, are not supported.

ArgomentiArguments

  • PROJECT

    Progetto da comprimere.The project to pack. Può essere un percorso a un file csproj o a una directory.It's either a path to a csproj file or to a directory. Se non specificato, per impostazione predefinita il percorso corrisponde alla directory corrente.If not specified, it defaults to the current directory.

OpzioniOptions

  • -c|--configuration {Debug|Release}

    Definisce la configurazione di compilazione.Defines the build configuration. Il valore predefinito è Debug.The default value is Debug.

  • --force

    Forza la risoluzione di tutte le dipendenze, anche se l'ultimo ripristino ha avuto esito positivo.Forces all dependencies to be resolved even if the last restore was successful. La specifica di questo flag equivale all'eliminazione del file project.assets.json.Specifying this flag is the same as deleting the project.assets.json file.

  • -h|--help

    Stampa una breve guida per il comando.Prints out a short help for the command.

  • --include-source

    Include i file di origine nel pacchetto NuGet.Includes the source files in the NuGet package. I file di origine sono inclusi nella cartella src del pacchetto nupkg.The sources files are included in the src folder within the nupkg.

  • --include-symbols

    Genera i simboli nupkg.Generates the symbols nupkg.

  • --no-build

    Non compila il progetto prima della compressione.Doesn't build the project before packing. Imposta anche in modo implicito il flag --no-restore.It also implicitly sets the --no-restore flag.

  • --no-dependencies

    Ignora i riferimenti da progetto a progetto e ripristina solo il progetto radice.Ignores project-to-project references and only restores the root project.

  • --no-restore

    Non esegue un ripristino implicito quando si esegue il comando.Doesn't execute an implicit restore when running the command.

  • -o|--output <OUTPUT_DIRECTORY>

    Inserisce i pacchetti compilati nella directory specificata.Places the built packages in the directory specified.

  • --runtime <RUNTIME_IDENTIFIER>

    Specifica il runtime di destinazione per cui ripristinare i pacchetti.Specifies the target runtime to restore packages for. Per un elenco degli identificatori di runtime (RID, Runtime Identifier), vedere il catalogo RID.For a list of Runtime Identifiers (RIDs), see the RID catalog.

  • -s|--serviceable

    Imposta il flag utilizzabile dai servizi nel pacchetto.Sets the serviceable flag in the package. Per altre informazioni, vedere .NET Blog: .NET 4.5.1 Supports Microsoft Security Updates for .NET NuGet Libraries (Blog .NET: .NET 4.5.1 supporta gli aggiornamenti della sicurezza Microsoft per le librerie NuGet di .NET).For more information, see .NET Blog: .NET 4.5.1 Supports Microsoft Security Updates for .NET NuGet Libraries.

  • --version-suffix <VERSION_SUFFIX>

    Definisce il valore della proprietà MSBuild $(VersionSuffix) nel progetto.Defines the value for the $(VersionSuffix) MSBuild property in the project.

  • -v|--verbosity <LEVEL>

    Imposta il livello di dettaglio del comando.Sets the verbosity level of the command. I valori consentiti sono q[uiet], m[inimal], n[ormal], d[etailed] e diag[nostic].Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic].

EsempiExamples

  • Comprimere il progetto nella directory corrente:Pack the project in the current directory:

    dotnet pack
    
  • Comprimere il progetto app1:Pack the app1 project:

    dotnet pack ~/projects/app1/project.csproj
    
  • Comprimere il progetto nella directory corrente e inserire i pacchetti risultanti nella cartella nupkgs:Pack the project in the current directory and place the resulting packages into the nupkgs folder:

    dotnet pack --output nupkgs
    
  • Comprimere il progetto nella directory corrente e inserirlo nella cartella nupkgs, ignorando il passaggio relativo alla compilazione:Pack the project in the current directory into the nupkgs folder and skip the build step:

    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:With the project's version suffix configured as <VersionSuffix>$(VersionSuffix)</VersionSuffix> in the .csproj file, pack the current project and update the resulting package version with the given suffix:

    dotnet pack --version-suffix "ci-1234"
    
  • Impostare la versione del pacchetto su 2.1.0 con la proprietà MSBuild PackageVersion:Set the package version to 2.1.0 with the PackageVersion MSBuild property:

    dotnet pack -p:PackageVersion=2.1.0
    
  • Comprimere il progetto per un framework di destinazione specifico:Pack the project for a specific target framework:

    dotnet pack -p:TargetFrameworks=net45
    
  • Comprimere il progetto e usare un runtime specifico (Windows 10) per l'operazione di ripristino (.NET Core SDK 2.0 e versioni successive):Pack the project and use a specific runtime (Windows 10) for the restore operation (.NET Core SDK 2.0 and later versions):

    dotnet pack --runtime win10-x64
    
  • Comprimere il progetto usando un file con estensione nuspec:Pack the project using a .nuspec file:

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