【问题标题】:How to list all installed NuGet Packages and Versions using .NET CLI如何使用 .NET CLI 列出所有已安装的 NuGet 包和版本
【发布时间】:2023-03-18 11:25:01
【问题描述】:

如何在没有 Visual Studio 2017 的 ASP.NET Core 项目中使用 .NET Core CLI 列出所有本地安装的 NuGet 包?

我有一个 ASP.NET Core 2.1 项目。默认情况下,我有一个<PackageReference Include="Microsoft.AspNetCore.App" />,其中没有版本。我想知道它使用的版本是什么。我找不到任何 CLI 命令来查询该信息。

【问题讨论】:

  • @EylM 可以不使用 PowerShell 吗?
  • .Net Core CLI 没有用于列出项目已安装 Nuget 包的任何命令。由于Microsoft.AspNetCore.App 是一个元包(一组有意义的包),您可以随时以编程方式或手动检查任何包含包的版本。您还可以检查 .nuget/packages/microsoft.aspnetcore.app/[versionNumber] 中的文件夹名称或使用之前建议的 Powershell。
  • @RadimGöth 它在.csproj 文件中没有任何“版本”。如果 NuGet Packate Store 中安装了多个 NuGet 包,我不知道应该应用哪个包版本的逻辑是什么。
  • @EylM @RadimGöth 我检查了解决方案。它只是行不通。 PowerShell 脚本仅检查 packages.config 及其内容。无法在.csproj 文件中检查包Version。此外,我的.csproj 文件中没有Version

标签: asp.net-core .net-core nuget asp.net-core-cli


【解决方案1】:

如果未提供元包的Version 属性(Microsoft.AspNetCore.Appis),则采用本地安装的最低版本。你可以在%userprofile%\.nuget\packages\microsoft.aspnetcore.app查看你本地安装了哪些版本

但是,您通常不想知道元包版本,而是其中每个包的版本,您可以通过以下方式确定它们:

var referencedAssemblies = Assembly.GetExecutingAssembly().GetReferencedAssemblies();
foreach (var assembly in referencedAssemblies)
   Console.WriteLine($"{assembly.Name} {assembly.Version}");

【讨论】:

  • 这些天我做了一些测试。如果未提供元包的 Version 属性(Microsoft.AspNetCore.App 是),则不是采用最低的本地安装版本。它与 .NET Core SDK BundledAspNetCoreAllPackageVersion 定义的版本一致。在2.1.300,默认为2.1.0
猜你喜欢
  • 2014-04-17
  • 2012-10-08
  • 2016-09-14
  • 1970-01-01
  • 2015-11-22
  • 2015-06-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多