【问题标题】:Using Nuget.VisualStudio how would I get a list of packages from a repository使用 Nuget.VisualStudio 如何从存储库中获取包列表
【发布时间】:2018-10-30 19:33:13
【问题描述】:

在使用 Nuget.VisualStudio Nuget 包时,如何获取包列表以允许用户选择安装?

我正在迁移一个针对 Visual Studio 2013 Nuget API 构建的 vsix 项目,以使用 Visual Studio 2017 的 API。我正在使用此 documentation 设置具有以下警告的 Nuget 服务。

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

Visual Studio 2013 vsix 项目使用 Nuget.Core 来获取可以安装的包列表。不幸的是,当我添加 Nuget.Core 时,会出现大量命名空间冲突。这是我们在 Nuget.Core 包中使用的代码,我需要在新的 Nuget API 中找到它的等价物。

 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();;

【问题讨论】:

    标签: c# visual-studio-2017 nuget visual-studio-extensions


    【解决方案1】:

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

    根据NuGet/NuGet2

    NuGet2

    这是 nuget.core 和 codeplex 的所有 repos 的所在地。此存储库适用于 NuGet 版本 2。 第 3 版 Nuget 客户端库已移至 Nuget.Client。请参阅 NuGet API v3 文档以获取更多信息。

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

    https://docs.microsoft.com/en-us/nuget/reference/nuget-client-sdk

    以下是一些更有用的博文:

    查看similar thread 了解更多详情。

    希望这会有所帮助。

    【讨论】:

    • 我链接到的文档确实链接到 Nuget.Client 源代码。这确实有帮助,但并不能真正告诉我是否应该使用 IVS 接口。
    • 我终于能够拼凑出如何做到这一点,但文档中说不包含任何 Nuget.* 包确实让这变得困难。这些博客文章是可用的最佳文档,作者谈论 GetResourceAsync 的地方确实是我解决方案的关键。我稍后会发布代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-09
    • 1970-01-01
    • 1970-01-01
    • 2017-04-25
    • 2021-11-11
    • 1970-01-01
    • 2011-01-05
    相关资源
    最近更新 更多