C# 使用Nuget.VisualStudio如何从存储库中获取包列表

C# 使用Nuget.VisualStudio如何从存储库中获取包列表,c#,visual-studio-2017,nuget,visual-studio-extensions,C#,Visual Studio 2017,Nuget,Visual Studio Extensions,使用Nuget.VisualStudio Nuget软件包时,如何获取软件包列表以允许用户选择要安装的软件包 我正在迁移一个基于Visual Studio 2013 Nuget API构建的vsix项目,以使用Visual Studio 2017的API。我用它来设置Nuget服务,它有以下警告 不要在代码中使用公共接口以外的任何其他类型,也不要引用任何其他Nuget程序集,包括Nuget.Core.dll VisualStudio2013 vsix项目使用Nuget.Core获取可以安装的软件

使用Nuget.VisualStudio Nuget软件包时,如何获取软件包列表以允许用户选择要安装的软件包

我正在迁移一个基于Visual Studio 2013 Nuget API构建的vsix项目,以使用Visual Studio 2017的API。我用它来设置Nuget服务,它有以下警告

不要在代码中使用公共接口以外的任何其他类型,也不要引用任何其他Nuget程序集,包括Nuget.Core.dll

VisualStudio2013 vsix项目使用Nuget.Core获取可以安装的软件包列表。不幸的是,当我添加Nuget.Core时,有大量的名称空间冲突。这是我们从Nuget.Core包中使用的代码,我需要在新的NuGetAPI中找到与之等效的代码

 IPackageRepository repo = PackageRepositoryFactory.Default.CreateRepository("http://ourfeed.net/nuget");
 List<IPackage> packages = repo.GetPackages().Where(p => p.Tags.Contains(tag))
           .OrderByDescending(p => p.Version)
           .Take(packagesPerTag).ToList();;
IPackageRepository repo=PackageRepositoryFactory.Default.CreateRepository(“http://ourfeed.net/nuget");
List packages=repo.GetPackages()。其中(p=>p.Tags.Contains(tag))
.OrderByDescending(p=>p.Version)
.Take(packagesPerTag.ToList();;
使用Nuget.VisualStudio如何从存储库中获取包列表

根据报告:

NuGet2

这是nuget.core和codeplex所有回购协议的所在地。此存储库适用于NuGet的版本2版本3的 Nuget客户端库已移动到Nuget.client。请参阅NuGetAPI v3 有关更多信息,请参阅文档

有关NuGet客户端SDK的更多信息,请参阅NuGet API v3文档:

下面是一些更有用的博客帖子:

有关更多详细信息,请查看


希望这有帮助。

我链接到的文档确实链接到了Nuget.Client源代码。这确实有帮助,但并没有真正告诉我是否应该使用
IVS
接口。我终于能够拼凑出如何做到这一点,但文档中说不包含任何Nuget.*包确实让这变得很困难。这些博客文章是最好的文档,作者谈论GetResourceAsync的地方实际上是我的解决方案的关键。稍后我会发布代码。