dotnet publishdotnet publish

Questo argomento si applica a: ✓ .NET Core SDK 1.x .NET Core SDK 2.xThis topic applies to: ✓ .NET Core SDK 1.x .NET Core SDK 2.x

nomeName

dotnet publish: inserisce l'applicazione e le relative dipendenze in una cartella per la distribuzione in un sistema host.dotnet publish - Packs the application and its dependencies into a folder for deployment to a hosting system.

RiepilogoSynopsis

dotnet publish [<PROJECT>] [-c|--configuration] [-f|--framework] [--force] [--manifest] [--no-build] [--no-dependencies]
    [--no-restore] [-o|--output] [-r|--runtime] [--self-contained] [-v|--verbosity] [--version-suffix]
dotnet publish [-h|--help]

DescriptionDescription

dotnet publish compila l'applicazione, legge le relative dipendenze specificate nel file di progetto e pubblica il set di file risultante in una directory.dotnet publish compiles the application, reads through its dependencies specified in the project file, and publishes the resulting set of files to a directory. L'output include gli asset seguenti:The output includes the following assets:

  • Codice linguaggio intermedio (IL) in un assembly con un'estensione dll.Intermediate Language (IL) code in an assembly with a dll extension.
  • File .deps.json che contiene tutte le dipendenze del progetto..deps.json file that includes all of the dependencies of the project.
  • File .runtime.config.json che specifica il runtime condiviso previsto dall'applicazione e altre opzioni di configurazione per il runtime, ad esempio il tipo di Garbage Collection..runtime.config.json file that specifies the shared runtime that the application expects, as well as other configuration options for the runtime (for example, garbage collection type).
  • Dipendenze dell'applicazione copiate dalla cache NuGet nella cartella di output.The application's dependencies, which are copied from the NuGet cache into the output folder.

L'output del comando dotnet publish è pronto per la distribuzione in un sistema di hosting (ad esempio, un server, un PC, un Mac, un laptop) per l'esecuzione.The dotnet publish command's output is ready for deployment to a hosting system (for example, a server, PC, Mac, laptop) for execution. È l'unico metodo supportato ufficialmente per preparare l'applicazione per la distribuzione.It's the only officially supported way to prepare the application for deployment. A seconda del tipo di distribuzione specificato dal progetto, nel sistema host il runtime condiviso di .NET Core può essere installato o meno.Depending on the type of deployment that the project specifies, the hosting system may or may not have the .NET Core shared runtime installed on it. Per altre informazioni, vedere Distribuzione di applicazioni .NET Core.For more information, see .NET Core Application Deployment. Per la struttura di directory di un'applicazione pubblicata, vedere Directory structure (Struttura di directory).For the directory structure of a published application, see Directory structure.

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 pubblicare.The project to publish. Si tratta del percorso e del nome di un file di progetto C#, F# o Visual Basic oppure del percorso di una directory contenente un file di progetto C#, F# o Visual Basic.It's either the path and filename of a C#, F#, or Visual Basic project file, or the path to a directory that contains a C#, F#, or Visual Basic project file. 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.

-f|--framework <FRAMEWORK>

Pubblica l'applicazione per il framework di destinazione specificato.Publishes the application for the specified target framework. È necessario specificare il framework di destinazione nel file di progetto.You must specify the target framework in the project file.

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

--manifest <PATH_TO_MANIFEST_FILE>

Specifica uno o più manifesti di destinazione da usare per rimuovere il set di pacchetti pubblicati con l'app.Specifies one or several target manifests to use to trim the set of packages published with the app. Il file manifesto fa parte dell'output del comando dotnet store .The manifest file is part of the output of the dotnet store command. Per specificare più manifesti, aggiungere un'opzione --manifest per ogni manifesto.To specify multiple manifests, add a --manifest option for each manifest. Questa opzione è disponibile a partire da .NET Core 2.0 SDK.This option is available starting with .NET Core 2.0 SDK.

--no-build

Non compila il progetto prima della pubblicazione.Doesn't build the project before publishing. 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>

Specifica il percorso della directory di output.Specifies the path for the output directory. Se non specificato, il percorso predefinito sarà ./bin/[configuration]/[framework]/publish/ per una distribuzione dipendente da framework o ./bin/[configuration]/[framework]/[runtime]/publish/ per una distribuzione indipendente.If not specified, it defaults to ./bin/[configuration]/[framework]/publish/ for a framework-dependent deployment or ./bin/[configuration]/[framework]/[runtime]/publish/ for a self-contained deployment. Se il percorso è relativo, la directory di output generata è relativa al percorso del file di progetto e non alla directory di lavoro corrente.If the path is relative, the output directory generated is relative to the project file location, not to the current working directory.

--self-contained

Pubblica il runtime .NET Core con l'applicazione in modo che non sia necessario installare il runtime nel computer di destinazione.Publishes the .NET Core runtime with your application so the runtime doesn't need to be installed on the target machine. Se viene specificato un identificatore di runtime, il valore predefinito è true.If a runtime identifier is specified, its default value is true. Per altre informazioni sui diversi tipi di distribuzione, vedere Distribuzione di applicazioni .NET Core.For more information about the different deployment types, see .NET Core application deployment.

-r|--runtime <RUNTIME_IDENTIFIER>

Pubblica l'applicazione per un determinato runtime.Publishes the application for a given runtime. Viene usato durante la creazione di una distribuzione indipendente (SCD, Self-Contained Deployment).This is used when creating a self-contained deployment (SCD). 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. L'impostazione predefinita prevede la pubblicazione di una distribuzione dipendente da framework (FDD, Framework-Dependent Deployment).Default is to publish a framework-dependent deployment (FDD).

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

--version-suffix <VERSION_SUFFIX>

Definisce il suffisso di versione che sostituirà l'asterisco (*) nel campo del file di progetto relativo alla versione.Defines the version suffix to replace the asterisk (*) in the version field of the project file.

EsempiExamples

Pubblicare il progetto nella directory corrente:Publish the project in the current directory:

dotnet publish

Pubblicare l'applicazione usando il file di progetto specificato:Publish the application using the specified project file:

dotnet publish ~/projects/app1/app1.csproj

Pubblicare il progetto nella directory corrente usando il framework netcoreapp1.1:Publish the project in the current directory using the netcoreapp1.1 framework:

dotnet publish --framework netcoreapp1.1

Pubblicare l'applicazione corrente usando il framework netcoreapp1.1 e il runtime per OS X 10.10. Questo identificatore di runtime deve essere elencato nel file di progetto.Publish the current application using the netcoreapp1.1 framework and the runtime for OS X 10.10 (you must list this RID in the project file).

dotnet publish --framework netcoreapp1.1 --runtime osx.10.11-x64

Pubblicare l'applicazione corrente ma non ripristinare i riferimenti da progetto a progetto (P2P), soltanto il progetto radice durante l'operazione di ripristino (.NET Core SDK 2.0 e versioni successive):Publish the current application but don't restore project-to-project (P2P) references, just the root project during the restore operation (.NET Core SDK 2.0 and later versions):

dotnet publish --no-dependencies

Vedere ancheSee also