Ошибка во время установки расширения TFS приводит к невидимому расширению

Я разработал пользовательское расширение TFS и попытался установить его в своей локальной системе TFS 2017. Во время загрузки в галерее расширений (http://tfs:8080/tfs/_gallery/manage) произошла ошибка, сообщившая мне об искаженном содержимом моего пакета vsix. После устранения проблемы я не смог установить расширение, потому что TFS говорит: «Расширение уже существует». Проблема в том, что он не отображается в галерее. Поэтому у меня нет возможности удалить или обновить его. Вместо этого мне пришлось выбрать новый идентификатор в vss-extension.json.

Похоже, что во время ошибочной установки некоторые записи базы данных или файлы остались на сервере. У кого-нибудь была идея поискать те или иные альтернативные способы удаления расширения?

Таблица Gallery.tbl_Extension содержит запись с идентификатором неисправного расширения. Так что это не проблема кэшированных данных на сервере или клиенте.


person Jensen    schedule 07.09.2017    source источник


Ответы (2)


Идентификатор расширения означает просто идентификатор. Это строка, которая должна быть уникальной среди расширений одного и того же издателя.

Поскольку расширение загружается и не установлено должным образом. И просматривая список расширений, его тоже нет в списке. Это может быть проблема с кешем.

Попробуйте почистить кеши клиента (как TFS, так и браузера)

  • ТФС: C:\Users\{your account}\AppData\Local\Microsoft\TeamFoundation\{version}\Cache

  • Браузер, например IE (в зависимости от ваших настроек):

    C:\Users\{your account}\AppData\Local\Microsoft\Windows\INetCache

person PatrickLu-MSFT    schedule 08.09.2017

Даже если расширение не отображается в галерее расширений, вы можете запросить REST API TFS и посмотреть, установлено ли расширение (или оставшиеся его части): http://tfs:8080/tfs/_apis/gallery/publishers/MyPublisher/extensions/MyExtensionID

Затем вам нужно установить и удалить произвольное расширение из TFS Marketplace и записать вызовы REST (например, с помощью Chrome Dev Tools или Postman Interceptor).

Вы найдете запрос DELETE, который включает всю необходимую информацию заголовка. Вам просто нужно обновить идентификатор издателя и расширения в URL-адресе, чтобы они соответствовали пакету, который вы хотите удалить, и отправить его в TFS. В случае успеха сервер вернет 204 Not Content.

Похоже, это недокументированный API TFS, так как я не смог найти информацию об этом в текущей документации по API (https://www.visualstudio.com/en-us/docs/integrate/api/overview).

person Jensen    schedule 11.09.2017