本文适用于: ✔️ .NET Core 3.1 SDK 及更高版本
名字
dotnet package list - 列出项目或解决方案的包引用。
注释
如果使用的是 .NET 9 SDK 或更早版本,请改用“谓词优先”窗体(dotnet list package)。 .NET 10 中引入了“名词第一”形式。 有关详细信息,请参阅 更一致的命令顺序。
概要
dotnet package list [--config <SOURCE>]
[--deprecated] [--project [<PROJECT>|<SOLUTION>]]
[-f|--framework <FRAMEWORK>] [--highest-minor] [--highest-patch]
[--include-prerelease] [--include-transitive] [--interactive]
[--no-restore] [--outdated] [--source <SOURCE>] [-v|--verbosity <LEVEL>]
[--vulnerable]
[--format <console|json>]
[--output-version <VERSION>]
dotnet package list -h|--help
说明
dotnet package list 命令提供了一个方便的选项,用于列出特定项目或解决方案的所有 NuGet 包引用。
从 .NET 10 开始,在生成结果之前,命令会根据需要自动执行还原。
在早期版本中,首先需要 生成/还原项目 才能让此命令处理所需的资产。
以下示例显示了 dotnet package list 项目的 命令的输出:
Restore complete (5.9s)
Build succeeded in 6.0s
Project 'SentimentAnalysis' has the following package references
[netcoreapp2.1]:
Top-level Package Requested Resolved
> Microsoft.ML 1.4.0 1.4.0
> Microsoft.NETCore.App (A) [2.1.0, ) 2.1.0
(A) : Auto-referenced package.
请求 列引用项目文件中指定的包版本,可以是范围。
解析 列列出了项目当前正在使用的版本,并且始终是单个值。 显示其名称旁边的 (A) 的包表示从项目设置推断的隐式包引用(Sdk 类型或 <TargetFramework> 或 <TargetFrameworks> 属性)。
如果要跳过自动还原,可以使用 --no-restore 此选项。
示例 dotnet package list --no-restore:
Project 'SentimentAnalysis' has the following package references
[netcoreapp2.1]:
Top-level Package Requested Resolved
> Microsoft.ML 1.4.0 1.4.0
> Microsoft.NETCore.App (A) [2.1.0, ) 2.1.0
(A) : Auto-referenced package.
使用“--outdated”选项可了解项目中正在使用的包是否有较新版本。 默认情况下,--outdated 列出最新的稳定包,除非解析的版本也是预发行版本。 若要在列出较新版本时包括预发行版,还指定 --include-prerelease 选项。 若要将包更新到最新版本,请使用 dotnet 包添加。
以下示例显示了与上一示例相同的项目的 dotnet package list --outdated --include-prerelease 命令的输出:
Restore complete (0.6s)
Build succeeded in 0.7s
The following sources were used:
https://api.nuget.org/v3/index.json
C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\
Project `SentimentAnalysis` has the following updates to its packages
[netcoreapp2.1]:
Top-level Package Requested Resolved Latest
> Microsoft.ML 1.4.0 1.4.0 1.5.0-preview
如果需要了解项目是否具有可传递依赖项,请使用 --include-transitive 选项。 将包添加到又依赖于另一个包的项目时,会发生可传递依赖项。 以下示例显示了运行 dotnet package list --include-transitive 项目的 命令的输出,该命令显示顶级包及其依赖的包:
Restore complete (0.6s)
Build succeeded in 0.7s
Project 'HelloPlugin' has the following package references
[netcoreapp3.0]:
Transitive Package Resolved
> PluginBase 1.0.0
论据
PROJECT | SOLUTION
要作的项目或解决方案文件。 如果未指定,该命令将在当前目录中搜索一个目录。 如果找到多个解决方案或项目,则会引发错误。
选项
--config <SOURCE>搜索较新的包时要使用的 NuGet 源。 需要
--outdated选项。--deprecated显示已弃用的包。
-f|--framework <FRAMEWORK>仅显示适用于指定 目标框架的包。 若要指定多个框架,请多次重复该选项。 例如:
--framework net6.0 --framework netstandard2.0。 从 .NET 9 SDK 开始,选项(-f)的简短形式可用。
-?|-h|--help打印出有关如何使用命令的说明。
--highest-minor在搜索较新的包时,仅考虑具有匹配的主版本号的包。 需要
--outdated或--deprecated选项。--highest-patch在搜索较新的包时,仅考虑具有匹配的主版本号和次要版本号的包。 需要
--outdated或--deprecated选项。--include-prerelease在搜索较新的包时,请考虑具有预发行版版本的包。 需要
--outdated或--deprecated选项。--include-transitive列出可传递包,以及顶级包。 指定此选项时,可以获取顶级包所依赖的包列表。
--interactive允许命令停止并等待用户输入或操作。 例如,完成身份验证。 自 .NET Core 3.0 SDK 起可用。
--no-restore在运行命令之前不要还原。
--outdated列出提供较新版本的包。
-s|--source <SOURCE>搜索较新的包时要使用的 NuGet 源。 需要
--outdated或--deprecated选项。
-v|--verbosity <LEVEL>设置命令的详细级别。 允许使用的值为
q[uiet]、m[inimal]、n[ormal]、d[etailed]和diag[nostic]。 默认值为minimal。 有关详细信息,请参阅 LoggerVerbosity。
--vulnerable列出具有已知漏洞的包。 不能与
--deprecated或--outdated选项结合使用。 从 .NET SDK 9.0.300 开始可用,此选项使用<AuditSources>配置文件中的属性来指定从 VulnerabilityInfo 资源获取的漏洞数据源。 如果未指定<AuditSources>,则使用指定的<PackageSources>加载漏洞数据。 有关详细信息,请参阅 审核源 和 如何扫描 NuGet 包中的安全漏洞。--format <console|json>设置报表输出格式。 允许的值
console,json。 默认为console。 从 .NET SDK 7.0.200 开始可用。--output-version <VERSION>设置报表输出版本。 允许的值为
1。 默认为1。 需要--format json选项。 当新的 JSON 版本可用时,该命令将默认生成新格式。 使用此选项可以指定命令应生成早期格式。 从 .NET SDK 7.0.200 开始可用。
例子
列出特定项目的包引用:
dotnet package list --project SentimentAnalysis.csproj列出具有较新版本的包引用,包括预发行版:
dotnet package list --outdated --include-prerelease列出特定目标框架的包引用:
dotnet package list --framework netcoreapp3.0以计算机可读 json 输出格式列出包引用:
dotnet package list --format json以计算机可读 json 输出格式列出特定目标框架的包引用:
dotnet package list --framework netcoreapp3.0 --format json将包引用的计算机可读 json 输出(包括可传递依赖项和漏洞详细信息)保存到文件中:
dotnet package list --include-transitive --vulnerable --format json >> dependencyReport.json使用输出版本 1 以计算机可读 json 输出格式列出包引用:
dotnet package list --format json --output-version 1