有没有办法在 Visual Studio 中查看已安装的 NuGet 包来自哪个包源?

2024-02-16

在 Visual Studio 的 NuGet 包管理器中,您可以通过单击包管理器中的“已安装”选项卡来查看解决方案中已安装哪些 NuGet 包。

但是,在同一包位于多个 NuGet 包源中的情况下,查看特定 NuGet 包来自哪个包源会很有用。有没有办法在 NuGet 包管理器或 VS 中的其他地方看到这一点?

Edit:复制下面我的评论以进行澄清:

我正在使用现有的项目作为模型来创建一个项目。这两个项目都需要引用相同的 Nuget 包,因此我在 Visual Studio 中打开模型项目,打开 Nuget 包管理器,然后查看其已安装的包。模型项目已安装“PackageA”。我打开新项目,打开它的 Nuget 包管理器,然后浏览“PackageA”。我注意到“PackageA”在多个包源中可用。 (这些是我公司内部的,不是 nuget,org)在我的新项目中,我想从与模型项目相同的包源安装“PackageA”


有没有办法在 Visual Studio 中查看已安装的 NuGet 包来自哪个包源?

简单的答案是否定的。这是因为有关包管理器的“已安装”选项卡中已在解决方案中安装了哪些 NuGet 包的信息基于packages.config文件。只有包ID, version, targetFramework该文件中的选项,因此我们可以根据包管理器中获取 NuGet 包源信息Packages.config.

此外,当我们使用NuGet来管理我们的包时,NuGet将从NuGet包源下载包并将这些包设置到Packages解决方案文件夹中的文件夹。接下来我们要做的是与Packages文件夹中的包相关,而不是与NuGet包源相关(NuGet恢复除外,恢复只是从NuGet包源下载包)。所以我们无法仅基于已经下载的包而在Package.config中没有包源信息的情况下找到包源。

更重要的是,当我们使用NuGet下载包时,NuGet会一一搜索NuGet Package Sources进行下载,NuGet不能明智地存储每个包下载的包源。

我想从与模型项目相同的包源安装“PackageS”

为了解决这个问题,您可以打开Packages文件夹,复制“PackagesA”,将其设置为您要使用的NuGet包源,然后从该包源安装“PackageA”,您将获得与模型项目相同的包。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法在 Visual Studio 中查看已安装的 NuGet 包来自哪个包源? 的相关文章

随机推荐