как вызвать консоль диспетчера пакетов и выполнить Find-Package в расширении Visual Studio

Я разрабатываю расширение Visual Studio (vsix).

Теперь я хочу получить последнюю версию пакета nuget. Я нашел только один способ, используя Package Manager Console, dotnet CLI по-прежнему не поддерживает команду поиска.

Итак, как я могу вызвать Package Manager Console и выполнить команду Find-Package, или есть другой способ получить последнюю версию пакета с определенного исходного сервера пакета.


person Hourglass    schedule 18.12.2019    source источник


Ответы (1)


Вы пробовали способ из приведенного ниже документа или нет?

https://docs.microsoft.com/en-us/nuget/guides/api/query-for-all-published-packages.

Я создал простой VSIX с элементом команды клиента, и он может использовать приведенный ниже код для выполнения пакетов поиска из NuGet (сначала необходимо установить Nuget.PackageManagement в ваш проект VSIX).

        List<Lazy<INuGetResourceProvider>> providers = new List<Lazy<INuGetResourceProvider>>();
        providers.AddRange(Repository.Provider.GetCoreV3());  // Add v3 API support
        //providers.AddRange(Repository.Provider.GetCoreV2());  // Add v2 API support
        PackageSource packageSource = new PackageSource("https://api.nuget.org/v3/index.json");
        SourceRepository sourceRepository = new SourceRepository(packageSource, providers);
        PackageMetadataResource packageMetadataResource = await sourceRepository.GetResourceAsync<PackageMetadataResource>();
        IEnumerable<IPackageSearchMetadata> searchMetadata = await packageMetadataResource.GetMetadataAsync("JSON.net", true, true, null, NuGet.Common.NullLogger.Instance, CancellationToken.None);
        var a= searchMetadata.ToString();
person DevPreSupport_MSFT    schedule 20.12.2019
comment
: D спасибо, это полезно. Я не нашел этот документ, я нашел [это] [docs.microsoft.com/en-us/nuget/visual-studio-extensibility/ - person Hourglass; 20.12.2019