dotnet publishdotnet publish

Эта статья применима к: ✓ пакету SDK для .NET Core 1.x пакету SDK для .NET Core 2.xThis topic applies to: ✓ .NET Core SDK 1.x .NET Core SDK 2.x

nameName

dotnet publish — упаковывает приложение и его зависимости в папку для развертывания на размещающей системе.dotnet publish - Packs the application and its dependencies into a folder for deployment to a hosting system.

Краткий обзорSynopsis

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]

ОписаниеDescription

dotnet publish компилирует приложение, считывает его зависимости, указанные в файле проекта, и публикует итоговый набор файлов в каталоге.dotnet publish compiles the application, reads through its dependencies specified in the project file, and publishes the resulting set of files to a directory. Выходные данные включают следующие ресурсы:The output includes the following assets:

  • Код на промежуточном языке (IL) в сборке с расширением DLL.Intermediate Language (IL) code in an assembly with a dll extension.
  • Файл .deps.json, содержащий все зависимости проекта..deps.json file that includes all of the dependencies of the project.
  • Файл .runtime.config.json, указывающий общую среду выполнения, которую ожидает приложение, а также другие параметры конфигурации для среды выполнения (например, тип сборки мусора)..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).
  • Зависимости приложения, которые копируются из кэша NuGet в выходную папку.The application's dependencies, which are copied from the NuGet cache into the output folder.

Выходные данные команды dotnet publish готовы к развертыванию в размещающей системе (например, на сервере, ПК, Mac, ноутбуке) для выполнения.The dotnet publish command's output is ready for deployment to a hosting system (for example, a server, PC, Mac, laptop) for execution. Это единственный официальный способ подготовить приложение к развертыванию.It's the only officially supported way to prepare the application for deployment. В зависимости от указанного в проекте типа развертывания размещающая система может как иметь, так и не иметь общую среду выполнения .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. Дополнительные сведения см. в разделе Развертывание приложений .NET Core.For more information, see .NET Core Application Deployment. Структуру каталогов опубликованного приложения см. в разделе Структура каталогов.For the directory structure of a published application, see Directory structure.

Примечание

Начиная с .NET Core 2.0 нет необходимости выполнять команду dotnet restore, так как она выполняется неявно всеми командами, которые требуют восстановления, например dotnet build и dotnet run.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. Эту команду по-прежнему можно использовать в некоторых сценариях, где необходимо явное восстановление, например в сборках с использованием непрерывной интеграции в Azure DevOps Services или системах сборки, где требуется явно контролировать время восстановления.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.

Эта команда также поддерживает параметры dotnet restore при передаче в длинной форме (например, --source).This command also supports the dotnet restore options when passed in the long form (for example, --source). Параметры в краткой форме, например -s, не поддерживаются.Short form options, such as -s, are not supported.

АргументыArguments

PROJECT

Проект для публикации.The project to publish. Это путь или имя файла проекта C#, F# или Visual Basic либо же путь к папке, которая содержит файл проекта C#, F# или 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. Если значение не задано, по умолчанию используется текущий каталог.If not specified, it defaults to the current directory.

ПараметрыOptions

-c|--configuration {Debug|Release}

Определяет конфигурацию сборки.Defines the build configuration. Значение по умолчанию — Debug.The default value is Debug.

-f|--framework <FRAMEWORK>

Публикует приложение для указанной целевой платформы.Publishes the application for the specified target framework. Вам нужно указать целевую платформу в файле проекта.You must specify the target framework in the project file.

--force

Принудительное разрешение всех зависимостей, даже если последнее восстановление прошло успешно.Forces all dependencies to be resolved even if the last restore was successful. Указание этого флага дает тот же результат, что удаление файла project.assets.json.Specifying this flag is the same as deleting the project.assets.json file.

-h|--help

Выводит краткую справку по команде.Prints out a short help for the command.

--manifest <PATH_TO_MANIFEST_FILE>

Определяет один или несколько целевых манифестов для усечения множества пакетов, публикуемых вместе с приложением.Specifies one or several target manifests to use to trim the set of packages published with the app. Файл манифеста является частью выходных данных команды dotnet store.The manifest file is part of the output of the dotnet store command. Чтобы указать несколько манифестов, добавьте параметр --manifest для каждого из них.To specify multiple manifests, add a --manifest option for each manifest. Этот параметр доступен начиная с пакета SDK для .NET Core 2.0.This option is available starting with .NET Core 2.0 SDK.

--no-build

Не выполняет сборку проекта перед публикацией.Doesn't build the project before publishing. Он также неявно задает флаг --no-restore.It also implicitly sets the --no-restore flag.

--no-dependencies

Межпроектные ссылки игнорируются, и восстанавливается только корневой проект.Ignores project-to-project references and only restores the root project.

--no-restore

Не выполняет неявное восстановление при выполнении команды.Doesn't execute an implicit restore when running the command.

-o|--output <OUTPUT_DIRECTORY>

Задает путь для выходного каталога.Specifies the path for the output directory. Если значение не задано, по умолчанию используется путь ./bin/[configuration]/[framework]/publish/ для зависимого от платформы развертывания или ./bin/[configuration]/[framework]/[runtime]/publish/ для автономного.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. Если указан относительный путь, созданный выходной каталог задается относительно расположения файла проекта, а не текущего рабочего каталога.If the path is relative, the output directory generated is relative to the project file location, not to the current working directory.

--self-contained

Публикует среду выполнения .NET Core вместе с приложением, что позволяет не устанавливать ее на конечном компьютере.Publishes the .NET Core runtime with your application so the runtime doesn't need to be installed on the target machine. Если указывается идентификатор среды выполнения, его значение по умолчанию — true.If a runtime identifier is specified, its default value is true. Дополнительные сведения о различных типах развертывания см. в разделе Развертывание приложений .NET Core.For more information about the different deployment types, see .NET Core application deployment.

-r|--runtime <RUNTIME_IDENTIFIER>

Публикует приложение для данной среды выполнения.Publishes the application for a given runtime. Используется при создании автономного развертывания.This is used when creating a self-contained deployment (SCD). Список идентификаторов сред выполнения (RID) см. в каталоге RID.For a list of Runtime Identifiers (RIDs), see the RID catalog. По умолчанию публикуется платформозависимое приложение.Default is to publish a framework-dependent deployment (FDD).

-v|--verbosity <LEVEL>

Задает уровень детализации команды.Sets the verbosity level of the command. Допустимые значения: q[uiet], m[inimal], n[ormal], d[etailed] и diag[nostic].Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic].

--version-suffix <VERSION_SUFFIX>

Определяет суффикс версии для замены звездочки (*) в поле версия файла проекта.Defines the version suffix to replace the asterisk (*) in the version field of the project file.

ПримерыExamples

Публикация проекта в текущем каталоге:Publish the project in the current directory:

dotnet publish

Публикация приложения с использованием указанного файла проекта:Publish the application using the specified project file:

dotnet publish ~/projects/app1/app1.csproj

Публикация проекта в текущем каталоге с использованием платформы netcoreapp1.1:Publish the project in the current directory using the netcoreapp1.1 framework:

dotnet publish --framework netcoreapp1.1

Публикация текущего приложения с использованием платформы netcoreapp1.1 и среды выполнения для OS X 10.10 (вам нужно указать этот идентификатор RID в файле проекта).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

Публикация текущего приложения с обработкой только корневого проекта, без восстановления ссылок между проектами (P2P), во время операции восстановления (пакет SDK для .NET Core 2.0 и более поздних версий).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

См. такжеSee also