zl程序教程

您现在的位置是:首页 >  其他

当前栏目

dotnet pack

2023-04-18 16:57:14 时间

本文适用于: ✔️ .NET Core 2.x SDK 及更高版本

“属性”

dotnet pack - 将代码打包到 NuGet 包。

摘要

dotnet pack [<PROJECT>|<SOLUTION>] [-c|--configuration <CONFIGURATION>]

[--force] [--include-source] [--include-symbols] [--interactive]

[--no-build] [--no-dependencies] [--no-restore] [--nologo]

[-o|--output <OUTPUT_DIRECTORY>] [--runtime <RUNTIME_IDENTIFIER>]

[-s|--serviceable] [-v|--verbosity <LEVEL>]

[--version-suffix <VERSION_SUFFIX>]

dotnet pack -h|--help

描述

dotnet pack 命令生成项目并创建 NuGet 包。 该命令的结果是一个 NuGet 包,也就是一个 .nupkg 文件。

如果要生成包含调试符号的包,可以使用以下两个选项:

--include-symbols:该选项用于创建符号包。

--include-source:该选项用于创建带有 src 文件夹的符号包,该文件夹包含源文件。

将被打包项目的 NuGet 依赖项添加到 .nuspec 文件,以便在安装包时可以进行正确解析。 如果打包的项目具有对其他项目的引用,则不会将其他项目包含在包中。 目前,如果具有项目到项目的依赖项,则每个项目均必须包含一个包。

默认情况下,dotnet pack 先构建项目。 如果希望避免此行为,则传递 --no-build 选项。 此选项在持续集成 (CI) 生成方案中通常非常有用,你可以知道代码是之前生成的。

备注

在某些情况下,无法执行隐式生成。 设置 GeneratePackageOnBuild 以避免生成目标和包目标之间的循环依赖关系时可能会发生这种情况。 如果存在锁定文件或其他问题,生成也可能失败。

可向 dotnet pack 命令提供 MSBuild 属性,用于打包进程。 有关详细信息,请参阅 NuGet 包目标属性和 MSBuild 命令行引用。 示例部分介绍了如何在不同的情况下使用 MSBuild -p 开关。

默认情况下,Web 项目不可打包。 若要覆盖默认行为,请将以下属性添加到 .csproj 文件中:

<PropertyGroup>

<IsPackable>true</IsPackable>

</PropertyGroup>

隐式还原

无需运行 dotnet restore,因为它由所有需要还原的命令隐式运行,如 dotnet new、dotnet build、dotnet run、dotnet test、dotnet publish 和 dotnet pack。 若要禁用隐式还原,请使用 --no-restore 选项。

在执行显式还原有意义的某些情况下,例如 Azure DevOps Services 中的持续集成生成中,或在需要显式控制还原发生时间的生成系统中,dotnet restore 命令仍然有用。

有关如何使用 NuGet 源的信息,请参阅 dotnet restore 文档。

以长格式传入时,此命令支持 dotnet restore 选项(例如,--source)。 不支持缩写选项,例如 -s。

工作负载清单下载

运行此命令时,它将为工作负载启动播发清单的异步后台下载。 如果此命令完成后,下载仍在运行,则将停止下载。 有关详细信息,请参阅播发清单。

自变量

PROJECT | SOLUTION

要打包的项目或解决方案。 它可能是 csproj 文件、vbproj 文件、fsproj 文件、解决方案文件或目录的路径。 如果未指定,此命令会搜索当前目录,以获取项目文件或解决方案文件。

选项

-c|--configuration <CONFIGURATION>

定义生成配置。 大多数项目的默认配置为 Debug,但你可以覆盖项目中的生成配置设置。

--force

强制解析所有依赖项,即使上次还原已成功,也不例外。 指定此标记等同于删除 project.assets.json 文件。

-?|-h|--help

打印出有关如何使用命令的说明。

--include-source

除输出目录中的常规 NuGet 包外,还包括调试符号 NuGet 包。 源文件包括在符号包内的 src 文件夹中。

--include-symbols

除输出目录中的常规 NuGet 包外,还包括调试符号 NuGet 包。

--interactive

允许命令停止并等待用户输入或操作。 例如,完成身份验证。 自 .NET Core 3.0 SDK 起可用。

--no-build

打包前不生成项目。 还将隐式设置 --no-restore 标记。

--no-dependencies

忽略项目间引用,仅还原根项目。

--no-restore

运行此命令时不执行隐式还原。

--nologo

不显示启动版权标志或版权消息。 自 .NET Core 3.0 SDK 起可用。

-o|--output <OUTPUT_DIRECTORY>

将生成的包放置在指定目录。

--runtime <RUNTIME_IDENTIFIER>

指定要为其还原包的目标运行时。 有关运行时标识符 (RID) 的列表,请参阅 RID 目录。

-s|--serviceable

设置包中可用的标志。 有关详细信息,请参阅 .NET 博客:.NET Framework 4.5.1 支持 .NET NuGet 库的 Microsoft 安全更新。

-v|--verbosity <LEVEL>

设置命令的详细级别。 允许使用的值为 q[uiet]、m[inimal]、n[ormal]、d[etailed] 和 diag[nostic]。 有关详细信息,请参阅 LoggerVerbosity。

--version-suffix <VERSION_SUFFIX>

定义 VersionSuffix MSBuild 属性的值。 此属性对包版本的影响取决于 Version 和 VersionPrefix 属性的值,如下表所示:

具有值的属性

包版本

1.0.0

Version