dotnet list package

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

“属性”

dotnet list package - 列出项目或解决方案的包引用。

摘要

dotnet list [<PROJECT>|<SOLUTION>] package [--config <SOURCE>]
    [--deprecated]
    [-f|--framework <FRAMEWORK>] [--highest-minor] [--highest-patch]
    [--include-prerelease] [--include-transitive] [--interactive]
    [--outdated] [--source <SOURCE>] [-v|--verbosity <LEVEL>]
    [--vulnerable]
    [--format <console|json>]
    [--output-version <VERSION>]

dotnet list package -h|--help

描述

使用 dotnet list package 命令,可以方便地列出特定项目或解决方案的所有 NuGet 包引用。 首先,需要生成项目,以提供必需资产以供此命令处理。 下面的示例展示了 SentimentAnalysis 项目的 dotnet list package 命令输出:

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> 属性)推断出的隐式包引用。

使用 --outdated 选项,可以确定项目中正在使用的包是否有更高版本。 默认情况下,--outdated 列出最新稳定包,除非已解析版本也是预发行版本。 若要在列出更高版本时包含预发行版本,还请指定 --include-prerelease 选项。 若要将包更新到最新版本,请使用 dotnet add package

下面的示例展示了上一个示例中相同项目的 dotnet list package --outdated --include-prerelease 命令输出:

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 选项。 如果在项目中添加包,它转而又依赖另一个包,就会出现可传递依赖关系。 下面的示例展示了 HelloPlugin 项目的 dotnet list package --include-transitive 命令运行输出,其中显示顶级包及其依赖的包:

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。 选项的简短形式(-f)从 .NET 9 SDK 开始可用。

  • -?|-h|--help

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

  • --highest-minor

    在搜索版本更高的包时,仅考虑有匹配的主版本号的包。 需要使用 --outdated--deprecated 选项。

  • --highest-patch

    在搜索版本更高的包时,仅考虑有匹配的主版本号和次要版本号的包。 需要使用 --outdated--deprecated 选项。

  • --include-prerelease

    在搜索版本更高的包时,考虑有预发行版本的包。 需要使用 --outdated--deprecated 选项。

  • --include-transitive

    除了顶级包之外,还列出可传递包。 如果指定此选项,可以获取顶级包所依赖的包列表。

  • --interactive

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

  • --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 选项合并。 Nuget.org 是有关漏洞的信息源。 有关详细信息,请参阅漏洞如何扫描 NuGet 包中的安全漏洞

  • --format <console|json>

    设置报告输出格式。 允许的值为 consolejson。 默认为 console。 从 .NET SDK 7.0.200 开始可用。

  • --output-version <VERSION>

    设置报告输出版本。 允许的值为 1。 默认为 1。 需要使用 --format json 选项。 当新的 JSON 版本可用时,默认情况下,命令将生成新格式。 此选项可让你指定命令应生成早期格式。 从 .NET SDK 7.0.200 开始可用。

示例

  • 列出特定项目的包引用:

    dotnet list SentimentAnalysis.csproj package
    
  • 列出有更高版本(包括预发行版本)的包引用:

    dotnet list package --outdated --include-prerelease
    
  • 列出特定目标框架的包引用:

    dotnet list package --framework netcoreapp3.0
    
  • 以计算机可读 json 输出格式列出包引用:

    dotnet list package --format json
    
  • 以计算机可读 json 输出格式列出特定目标框架的包引用:

    dotnet list package --framework netcoreapp3.0 --format json
    
  • 将包引用的计算机可读 json 输出(包括可传递依赖项和漏洞详细信息)保存到文件中:

    dotnet list package --include-transitive --vulnerable --format json >> dependencyReport.json
    
  • 以计算机可读 json 输出格式列出包引用,输出版本为 1:

    dotnet list package --format json --output-version 1