dotnet publishdotnet publish
本文内容
本文适用于:✓ .NET Core 1.x SDK ✓ .NET Core 2.x SDK
nameName
dotnet publish
- 将应用程序及其依赖项打包到文件夹以部署到托管系统。
摘要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]
dotnet publish [<PROJECT>] [-c|--configuration] [-f|--framework] [--force] [--manifest] [--no-dependencies]
[--no-restore] [-o|--output] [-r|--runtime] [--self-contained] [-v|--verbosity] [--version-suffix]
dotnet publish [-h|--help]
dotnet publish [<PROJECT>] [-c|--configuration] [-f|--framework] [-o|--output] [-r|--runtime] [-v|--verbosity]
[--version-suffix]
dotnet publish [-h|--help]
说明Description
dotnet publish
编译应用程序、读取 project 文件中指定的所有依赖项并将生成的文件集发布到目录。输出包括以下资产:
- 扩展名为 dll 的程序集中的中间语言 (IL) 代码。
- 包含项目所有依赖项的 .deps.json 文件 。
- .runtimeconfig.json 文件,其中指定了应用程序所需的共享运行时,以及运行时的其他配置选项(例如,垃圾回收类型)。
- 应用程序的依赖项,将这些依赖项从 NuGet 缓存复制到输出文件夹。
dotnet publish
命令的输出可供部署至托管系统(例如服务器、电脑、Mac、笔记本电脑)以便执行。若要准备用于部署的应用程序,这是唯一正式受支持的方法。根据项目指定的部署的类型,托管系统不一定已在其上安装 .NET Core 共享运行时。有关详细信息,请参阅 .NET Core 应用程序部署。有关已发布应用程序的目录结构,请参阅目录结构。
备注
从 .NET Core 2.0 开始,无需运行 dotnet restore
,因为它由需有还原的所有命令隐式运行,如 dotnet build
和 dotnet run
。在执行显式还原有意义的某些情况下,例如 Azure DevOps Services 中的持续集成生成中,或在需要显式控制还原发生时间的生成系统中,它仍然是有效的命令。
以长格式传递命令时,该命令也支持 dotnet restore
选项(例如,—source
)。不支持缩写选项,例如 -s
。
自变量Arguments
PROJECT
要发布的项目。它是 C#、F# 或 Visual Basic 项目文件的路径和文件名,或包含 C#、F# 或 Visual Basic 项目文件的目录的路径。如果未指定,则默认为当前目录。
选项Options
-c|—configuration {Debug|Release}
定义生成配置。默认值为 Debug
。
-f|—framework <FRAMEWORK>
为指定的目标框架发布应用程序。必须在项目文件中指定目标框架。
—force
强制解析所有依赖项,即使上次还原已成功,也不例外。指定此标记等同于删除 project.assets.json 文件 。
-h|—help
打印出有关命令的简短帮助。
—manifest <PATH_TO_MANIFEST_FILE>
指定一个或多个目标清单,用于剪裁与应用程序一同发布的一组包。清单文件是 dotnet store
命令输出的一部分。若要指定多个清单,请为每个清单添加一个 —manifest
选项。自 .NET Core 2.0 SDK 起,可以使用此选项。
—no-build
发布前不生成项目。还将隐式设置 —no-restore
标记。
—no-dependencies
忽略项目间引用,仅还原根项目。
—no-restore
运行此命令时不执行隐式还原。
-o|—output <OUTPUT_DIRECTORY>
指定输出目录的路径。如未指定,对于依赖于框架的部署,将默认为 ./bin/[configuration]/[framework]/publish/ 或对于独立部署,将默认为 ./bin/[configuration]/[framework]/[runtime]/publish/ 。如果路径是相对的,则生成的输出目录与项目文件位置相关,而与当前工作目录不相关。
—self-contained
与应用程序一同发布 .NET Core 运行时,因此无需在目标计算机上安装运行时。如果指定了运行时标识符,默认值为 true
。若要详细了解不同的部署类型,请参阅 .NET Core 应用程序部署。
-r|—runtime <RUNTIME_IDENTIFIER>
发布针对给定运行时的应用程序。这将在创建独立部署 (SCD) 时使用。有关运行时标识符 (RID) 的列表,请参阅 RID 目录。默认为发布依赖于框架的部署 (FDD)。
-v|—verbosity <LEVEL>
设置命令的详细级别。允许使用的值为 q[uiet]
、m[inimal]
、n[ormal]
、d[etailed]
和 diag[nostic]
。
—version-suffix <VERSION_SUFFIX>
定义版本后缀来替换项目文件的版本字段中的星号 (*
)。
-c|—configuration {Debug|Release}
定义生成配置。默认值为 Debug
。
-f|—framework <FRAMEWORK>
为指定的目标框架发布应用程序。必须在项目文件中指定目标框架。
—force
强制解析所有依赖项,即使上次还原已成功,也不例外。指定此标记等同于删除 project.assets.json 文件 。
-h|—help
打印出有关命令的简短帮助。
—manifest <PATH_TO_MANIFEST_FILE>
指定一个或多个目标清单,用于剪裁与应用程序一同发布的一组包。清单文件是 dotnet store
命令输出的一部分。若要指定多个清单,请为每个清单添加一个 —manifest
选项。自 .NET Core 2.0 SDK 起,可以使用此选项。
—no-dependencies
忽略项目间引用,仅还原根项目。
—no-restore
运行此命令时不执行隐式还原。
-o|—output <OUTPUT_DIRECTORY>
指定输出目录的路径。如未指定,对于依赖于框架的部署,将默认为 ./bin/[configuration]/[framework]/publish/ 或对于独立部署,将默认为 ./bin/[configuration]/[framework]/[runtime]/publish/ 。如果路径是相对的,则生成的输出目录与项目文件位置相关,而与当前工作目录不相关。
—self-contained
与应用程序一同发布 .NET Core 运行时,因此无需在目标计算机上安装运行时。如果指定了运行时标识符,默认值为 true
。若要详细了解不同的部署类型,请参阅 .NET Core 应用程序部署。
-r|—runtime <RUNTIME_IDENTIFIER>
发布针对给定运行时的应用程序。这将在创建独立部署 (SCD) 时使用。有关运行时标识符 (RID) 的列表,请参阅 RID 目录。默认为发布依赖于框架的部署 (FDD)。
-v|—verbosity <LEVEL>
设置命令的详细级别。允许使用的值为 q[uiet]
、m[inimal]
、n[ormal]
、d[etailed]
和 diag[nostic]
。
—version-suffix <VERSION_SUFFIX>
定义版本后缀来替换项目文件的版本字段中的星号 (*
)。
-c|—configuration {Debug|Release}
定义生成配置。默认值为 Debug
。
-f|—framework <FRAMEWORK>
为指定的目标框架发布应用程序。必须在项目文件中指定目标框架。
-h|—help
打印出有关命令的简短帮助。
—manifest <PATH_TO_MANIFEST_FILE>
指定一个或多个目标清单,用于剪裁与应用程序一同发布的一组包。清单文件是 dotnet store
命令输出的一部分。若要指定多个清单,请为每个清单添加一个 —manifest
选项。自 .NET Core 2.0 SDK 起,可以使用此选项。
-o|—output <OUTPUT_DIRECTORY>
指定输出目录的路径。如未指定,对于依赖于框架的部署,将默认为 ./bin/[configuration]/[framework]/publish/ 或对于独立部署,将默认为 ./bin/[configuration]/[framework]/[runtime]/publish/ 。如果路径是相对的,则生成的输出目录与项目文件位置相关,而与当前工作目录不相关。
-r|—runtime <RUNTIME_IDENTIFIER>
发布针对给定运行时的应用程序。这将在创建独立部署 (SCD) 时使用。有关运行时标识符 (RID) 的列表,请参阅 RID 目录。默认为发布依赖于框架的部署 (FDD)。
-v|—verbosity <LEVEL>
设置命令的详细级别。允许使用的值为 q[uiet]
、m[inimal]
、n[ormal]
、d[etailed]
和 diag[nostic]
。
—version-suffix <VERSION_SUFFIX>
定义版本后缀来替换项目文件的版本字段中的星号 (*
)。
示例Examples
在当前目录中发布项目:
dotnet publish
使用指定的项目文件发布应用程序:
dotnet publish ~/projects/app1/app1.csproj
使用 netcoreapp1.1
框架发布当前目录中的项目:
dotnet publish —framework netcoreapp1.1
使用 netcoreapp1.1
框架和 OS X 10.10
的运行时发布当前应用程序(必须在项目文件中列出此 RID)。
dotnet publish —framework netcoreapp1.1 —runtime osx.10.11-x64
发布当前应用程序,但在还原操作期间不还原项目到项目 (P2P) 引用,只还原根项目(.NET Core SDK 2.0 及更高版本):
dotnet publish —no-dependencies