dotnet publishdotnet publish

Este artículo se aplica a: ✓ SDK de .NET Core 1.x SDK de .NET Core 2.xThis article applies to: ✓ .NET Core 1.x SDK .NET Core 2.x SDK

NameName

dotnet publish: empaqueta la aplicación y sus dependencias en una carpeta para su implementación en un sistema de hospedaje.dotnet publish - Packs the application and its dependencies into a folder for deployment to a hosting system.

SinopsisSynopsis

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]

DESCRIPCIÓNDescription

dotnet publish: compila la aplicación, lee sus dependencias especificadas en el archivo de proyecto y publica el conjunto resultante de archivos en un directorio.dotnet publish compiles the application, reads through its dependencies specified in the project file, and publishes the resulting set of files to a directory. La salida incluye los recursos siguientes:The output includes the following assets:

  • Código de lenguaje intermedio (IL) en un ensamblado con una extensión dll.Intermediate Language (IL) code in an assembly with a dll extension.
  • Archivo .deps.json que incluye todas las dependencias del proyecto..deps.json file that includes all of the dependencies of the project.
  • Archivo .runtime.config.json en el que se especifica el entorno de tiempo de ejecución compartido que espera la aplicación, así como otras opciones de configuración para el tiempo de ejecución (por ejemplo, el tipo de recolección de elementos no utilizados)..runtimeconfig.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).
  • Las dependencias de la aplicación, que se copian de la caché de NuGet a la carpeta de salida.The application's dependencies, which are copied from the NuGet cache into the output folder.

La salida del comando dotnet publish está lista para la implementación en un sistema de hospedaje (por ejemplo, un servidor, un equipo PC o Mac, un portátil) para la ejecución.The dotnet publish command's output is ready for deployment to a hosting system (for example, a server, PC, Mac, laptop) for execution. Es la única manera admitida oficialmente para preparar la aplicación para la implementación.It's the only officially supported way to prepare the application for deployment. Dependiendo del tipo de implementación que especifique el proyecto, el sistema de hospedaje puede o no tener instalado el entorno de tiempo de ejecución compartido de .NET Core.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. Para obtener más información, consulte el tema Implementación de aplicaciones .NET Core.For more information, see .NET Core Application Deployment. Para la estructura de directorios de una aplicación publicada, consulte Directory structure (Estructura de directorios).For the directory structure of a published application, see Directory structure.

Nota

A partir de .NET Core 2.0, no es necesario ejecutar dotnet restore porque lo ejecutan implícitamente todos los comandos que requieren que se produzca una restauración, como dotnet build y dotnet run.Starting with .NET Core 2.0, you don't have to run dotnet restore because it's run implicitly by all commands that require a restore to occur, such as dotnet build and dotnet run. Sigue siendo un comando válido en algunos escenarios donde tiene sentido realizar una restauración explícita, como las compilaciones de integración continua en Azure DevOps Services o en los sistemas de compilación que necesitan controlar explícitamente la hora a la que se produce la restauración.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.

Este comando también admite las opciones dotnet restore cuando se pasan con el formato largo (por ejemplo, --source).This command also supports the dotnet restore options when passed in the long form (for example, --source). No se admiten las opciones de formato corto, como -s.Short form options, such as -s, are not supported.

ArgumentosArguments

PROJECT

El proyecto que se va a publicar.The project to publish. Es la ruta de acceso y el nombre de archivo de un archivo de proyecto C#, F# o Visual Basic, o la ruta de acceso a un directorio que contiene un archivo de proyecto 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. Si no se especifica, se toma como predeterminado el directorio actual.If not specified, it defaults to the current directory.

OpcionesOptions

-c|--configuration {Debug|Release}

Define la configuración de compilación.Defines the build configuration. El valor predeterminado es Debug.The default value is Debug.

-f|--framework <FRAMEWORK>

Publica la aplicación para el marco de trabajo de destino especificado.Publishes the application for the specified target framework. Debe especificar el marco de trabajo de destino en el archivo de proyecto.You must specify the target framework in the project file.

--force

Fuerza la resolución de todas las dependencias, incluso si la última restauración se realizó correctamente.Forces all dependencies to be resolved even if the last restore was successful. Especificar esta marca es lo mismo que eliminar el archivo project.assets.json.Specifying this flag is the same as deleting the project.assets.json file.

-h|--help

Imprime una corta ayuda para el comando.Prints out a short help for the command.

--manifest <PATH_TO_MANIFEST_FILE>

Especifica uno o varios manifiestos de destino que se usarán para recortar el conjunto de paquetes publicados con la aplicación.Specifies one or several target manifests to use to trim the set of packages published with the app. El archivo de manifiesto es parte de la salida del comando dotnet store.The manifest file is part of the output of the dotnet store command. Para especificar varios manifiestos, agregue la opción --manifest para cada manifiesto.To specify multiple manifests, add a --manifest option for each manifest. Esta opción está disponible a partir del SDK de .NET Core 2.0.This option is available starting with .NET Core 2.0 SDK.

--no-build

No compila el proyecto antes de publicarlo.Doesn't build the project before publishing. También establece la marca --no-restore de forma implícita.It also implicitly sets the --no-restore flag.

--no-dependencies

Omite las referencias de proyecto a proyecto y solo restaura el proyecto raíz.Ignores project-to-project references and only restores the root project.

--no-restore

No ejecuta una restauración implícita al ejecutar el comando.Doesn't execute an implicit restore when running the command.

-o|--output <OUTPUT_DIRECTORY>

Especifica la ruta de acceso del directorio de salida.Specifies the path for the output directory. Si no se especifica, el valor predeterminado es ./bin/[configuration]/[framework]/publish/ para una implementación dependiente del marco de trabajo o ./bin/[configuration]/[framework]/[runtime]/publish/ para una implementación independiente.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. Si la ruta de acceso es relativa, el directorio de salida generado es relativo a la ubicación del archivo de proyecto, no al directorio de trabajo actual.If the path is relative, the output directory generated is relative to the project file location, not to the current working directory.

--self-contained

Publica el tiempo de ejecución de .NET Core con la aplicación para que no sea necesario tener instalado el tiempo de ejecución en la máquina de destino.Publishes the .NET Core runtime with your application so the runtime doesn't need to be installed on the target machine. Si se especifica un identificador de tiempo de ejecución, su valor predeterminado es true.If a runtime identifier is specified, its default value is true. Para más información sobre los diferentes tipos de implementación, vea Implementación de aplicaciones .NET Core.For more information about the different deployment types, see .NET Core application deployment.

-r|--runtime <RUNTIME_IDENTIFIER>

Publica la aplicación para un determinado entorno de tiempo de ejecución.Publishes the application for a given runtime. Esto se usa al crear una implementación autocontenida (SCD).This is used when creating a self-contained deployment (SCD). Para obtener una lista de identificadores de tiempo de ejecución (RID), consulte el catálogo de RID.For a list of Runtime Identifiers (RIDs), see the RID catalog. El valor predeterminado es publicar una aplicación dependiente del marco de trabajo (FDD).Default is to publish a framework-dependent deployment (FDD).

-v|--verbosity <LEVEL>

Establece el nivel de detalle del comando.Sets the verbosity level of the command. Los valores permitidos son q[uiet], m[inimal], n[ormal], d[etailed] y diag[nostic].Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic].

--version-suffix <VERSION_SUFFIX>

Define el sufijo de versión para reemplazar el asterisco (*) en el campo de versión del archivo de proyecto.Defines the version suffix to replace the asterisk (*) in the version field of the project file.

EjemplosExamples

Publica el proyecto en el directorio actual:Publish the project in the current directory:

dotnet publish

Publicar la aplicación con el archivo del proyecto especificado:Publish the application using the specified project file:

dotnet publish ~/projects/app1/app1.csproj

Publica el proyecto en el directorio actual mediante el marco de trabajo netcoreapp1.1:Publish the project in the current directory using the netcoreapp1.1 framework:

dotnet publish --framework netcoreapp1.1

Publica la aplicación actual mediante el marco de trabajo netcoreapp1.1 y el entorno de tiempo de ejecución para OS X 10.10 (este RID tiene que existir en el archivo de proyecto):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

Publica la aplicación actual pero no restaura las referencias de proyecto a proyecto (P2P), solo el proyecto raíz, durante la operación de restauración (SDK de .NET Core 2.0 y versiones superiores):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

Vea tambiénSee also