dotnet list packagedotnet list package

本文内容

本文适用于:✓ .NET Core 2.2 SDK 及更高版本

nameName

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

摘要Synopsis

  1. dotnet list [<PROJECT>|<SOLUTION>] package [--config] [--framework] [--highest-minor] [--highest-patch]
  2. [--include-prerelease] [--include-transitive] [--interactive] [--outdated] [--source]
  3. dotnet list package [-h|--help]

说明Description

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

  1. Project 'SentimentAnalysis' has the following package references
  2. [netcoreapp2.1]:
  3. Top-level Package Requested Resolved
  4. > Microsoft.ML 0.11.0 0.11.0
  5. > Microsoft.NETCore.App (A) [2.1.0, ) 2.1.0
  6. (A) : Auto-referenced package.

“已请求” 列是指项目文件中指定的包版本,可以是一个范围。“已解析” 列列出了项目当前使用的版本,始终都是一个值。紧靠名称旁边显示 (A) 的包表示从项目设置(Sdk 类型、<TargetFramework><TargetFrameworks> 属性等)推断出的隐式包引用

使用 —outdated 选项,可以确定项目中正在使用的包是否有更高版本。默认情况下,—outdated 列出最新稳定包,除非已解析版本也是预发行版本。若要在列出更高版本时包含预发行版本,还请指定 —include-prerelease 选项。下面的示例展示了上一个示例中相同项目的 dotnet list package —outdated —include-prerelease 命令输出:

  1. The following sources were used:
  2. https://api.nuget.org/v3/index.json
  3. Project `SentimentAnalysis` has the following updates to its packages
  4. [netcoreapp2.1]:
  5. Top-level Package Requested Resolved Latest
  6. > Microsoft.ML 0.11.0 0.11.0 1.0.0-preview

如果需要确定项目是否有可传递依赖关系,请使用 —include-transitive 选项。如果在项目中添加包,它转而又依赖另一个包,就会出现可传递依赖关系。下面的示例展示了 HelloPlugin 项目的 dotnet list package —include-transitive 命令运行输出,其中显示顶级包及其依赖的包:

  1. Project 'HelloPlugin' has the following package references
  2. [netcoreapp3.0]:
  3. Top-level Package Requested Resolved
  4. > Microsoft.NETCore.Platforms (A) [3.0.0-preview3.19128.7, ) 3.0.0-preview3.19128.7
  5. > Microsoft.WindowsDesktop.App (A) [3.0.0-preview3-27504-2, ) 3.0.0-preview3-27504-2
  6. Transitive Package Resolved
  7. > Microsoft.NETCore.Targets 2.0.0
  8. > PluginBase 1.0.0
  9. (A) : Auto-referenced package.

自变量Arguments

PROJECT | SOLUTION

要对其运行命令的项目或解决方案文件。如果未指定,此命令会搜索当前目录来获取一个项目文件。如果找到多个解决方案或项目,便会抛出错误。

选项Options

  • —config <SOURCE>

在搜索版本更高的包时,要使用的 NuGet 源。需要使用 —outdated 选项。

  • —framework <FRAMEWORK>

只显示适用于指定目标框架的包。若要指定多个框架,请多次重复此选项。例如:—framework netcoreapp2.2 —framework netstandard2.0

  • -h|—help

打印出有关命令的简短帮助。

  • —highest-minor

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

  • —highest-patch

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

  • —include-prerelease

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

  • —include-transitive

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

  • —interactive

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

  • —outdated

列出版本更高的包。

  • -s|—source <SOURCE>

在搜索版本更高的包时,要使用的 NuGet 源。需要使用 —outdated 选项。

示例Examples

  • 列出特定项目的包引用:
  1. dotnet list SentimentAnalysis.csproj package
  • 列出有更高版本(包括预发行版本)的包引用:
  1. dotnet list package --outdated --include-prerelease
  • 列出特定目标框架的包引用:
  1. dotnet list package --framework netcoreapp3.0