我开发了一个自定义TFS扩展,并尝试在我的内部部署TFS 2017上安装它。在上传扩展库(http://tfs:8080/tfs/_gallery/manage)期间发生错误,告诉我有关我的vsix包的格式错误的内容。解决问题后,我无法安装扩展,因为TFS说“扩展已经存在。”。问题是,它没有出现在画廊中。所以我没有机会卸载或更新它。相反,我必须在vss-extension.json中选择一个新ID。
似乎在安装错误期间,某些数据库条目或文件仍留在服务器上。是否有人想要寻找那些或任何其他方法来删除扩展名?
Gallery.tbl_Extension
表包含一个ID为错误扩展名的条目。因此,这不是服务器或客户端上缓存数据的问题。
答案 0 :(得分:0)
扩展程序的ID仅表示标识符。在同一发布商的扩展程序中,哪个字符串必须唯一。
由于扩展程序已上传且未正确安装。查看扩展列表,它也不会出现在列表中。这可能是缓存问题。
尝试清理客户端缓存(TFS和浏览器)
C:\Users\{your account}\AppData\Local\Microsoft\TeamFoundation\{version}\Cache
浏览器,IE例如(根据您的设置):
C:\Users\{your account}\AppData\Local\Microsoft\Windows\INetCache
答案 1 :(得分:0)
即使扩展程序未显示在扩展程序库中,您也可以查询TFS REST API并查看是否已安装扩展程序(或其余部分): http://tfs:8080/tfs/_apis/gallery/publishers/MyPublisher/extensions/MyExtensionID
接下来,您需要从TFS Marketplace安装和删除任意扩展,并记录REST调用(例如,使用Chrome Dev Tools或Postman Interceptor)。
您将找到DELETE请求,其中包含所有必需的标头信息。您只需更新URL中的发布者和扩展ID以匹配要删除的包并将其发送到TFS。成功后,服务器将返回204 Not Content。
这似乎是一个未记录的TFS API,因为我在当前的API文档(https://www.visualstudio.com/en-us/docs/integrate/api/overview)中找不到任何关于它的信息。