Расширения автоматического обновления частной галереи Visual Studio

#c# #visual-studio #auto-update #visual-studio-extensions #vspackage

#c# #visual-studio #автоматическое обновление #visual-studio-extensions #vspackage

Вопрос:

Итак, я создал частную галерею расширений в Visual Studio и опубликовал расширение.

Я хотел создать другое расширение, которое автоматически обновляло бы первое, когда доступно обновление. Я нашел образец исходного кода (https://github.com/madskristensen/ExtensionUpdater ) для автоматического поиска и обновления расширений с помощью ExtensionRepositoryService, который предоставляет возможность запрашивать онлайн-репозиторий расширений Visual Studio.

ExtensionRepositoryService поставляется с предопределенными настройками и подключается к галерее Visual Studio, как только она возвращается с помощью пакета.GetService(тип) используется следующим образом:

 var repository = (IVsExtensionRepository)GetService(typeof(SVsExtensionRepository));
  

Запрос к репозиторию позже выполняется с помощью следующего кода:

 var entry = _repository.CreateQuery<GalleryEntry>(false, true, "ExtensionManagerUpdate")
                        .Where(e => e.VsixID == extension.Header.Identifier)
                        .AsEnumerable()
                        .FirstOrDefault();
  

Мой вопрос: возможно ли использовать тот же API для подключения к частной галерее VS и запрашивать предоставленные расширения в галерее?

Комментарии:

1. VS 2015 автоматически обновляет большинство расширений

2. Действительно, вам не нужно заставлять расширения обновлять другие расширения…

3. наши корпоративные разработчики в основном используют vs2010 и 2013, я не могу предположить, что у них самый обновленный VS

Ответ №1:

В итоге я создал класс CustomGallery, который реализует интерфейс IVsExtensionRepository

Класс имеет один конструктор, который получает путь к файлу XML и анализирует XML для чтения файла atom частной галереи. Я использовал Lync для простого запроса объекта CustomGallery

Комментарии:

1. Не могли бы вы опубликовать сослаться на вашу реализацию IVsExtensionRepository, поскольку я пытался выполнить поиск по всему Интернету, чтобы найти какую-либо реализацию для этого интерфейса, но никак… Мне пришлось имитировать основные функции галереи расширений для создания частной галереи расширений… Спасибо.