TFS 扩展已存在但未显示
TFS Extension already exists but not shown
我创建了一个构建扩展程序,但我第一次尝试上传它时遇到错误,因为 json 文件格式不正确。修复并重试后,我收到错误 扩展名已存在 但扩展名未显示在 tfs 扩展名列表中。
如何从 tsf 数据库或 tfs 缓存服务器中删除扩展?
服务器上是否有任何特定位置?
我什至清除了我的本地缓存,但没有帮助。
只需尝试清理客户端缓存(包括 TFS 和浏览器),然后重试。
TFS:C:\Users\{your account}\AppData\Local\Microsoft\TeamFoundation\{version}\Cache
浏览器,例如IE(根据您的设置):
C:\Users\{your account}\AppData\Local\Microsoft\Windows\INetCache
如果还是不行,试试下面的方法:
使用 REST API 删除现有扩展:(成功后服务器将 return 204 Not Content
。)
Delete http://server:8080/tfs/_apis/gallery/publishers/{publisher}/extensions/{extensionId}
(您可以从 vss-extension.json 文件中获取 publisher
和 extensionId
。)
只需使用 Postman 等工具发送 Delete 请求,或者您可以使用下面的 PowerShell 脚本删除现有扩展:
Param(
[string]$tfsurl = "http://server:8080/tfs",
[string]$publisher = "Andy",
[string]$extensionId = "sample-extension",
[string]$user = "username",
[string]$token = "password"
)
# Base64-encodes the Personal Access Token (PAT) appropriately
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))
$baseUrl = "$tfsurl/_apis/gallery/publishers/$publisher/extensions/$($extensionId)?api-version=3.2-preview.2"
$response = (Invoke-RestMethod -Uri $baseUrl -Method Delete -ContentType "application/json" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)})
- 重新上传固定扩展。
另一种解决方法是更改固定扩展的扩展 ID 并重新打包,然后上传。
我创建了一个构建扩展程序,但我第一次尝试上传它时遇到错误,因为 json 文件格式不正确。修复并重试后,我收到错误 扩展名已存在 但扩展名未显示在 tfs 扩展名列表中。 如何从 tsf 数据库或 tfs 缓存服务器中删除扩展? 服务器上是否有任何特定位置? 我什至清除了我的本地缓存,但没有帮助。
只需尝试清理客户端缓存(包括 TFS 和浏览器),然后重试。
TFS:
C:\Users\{your account}\AppData\Local\Microsoft\TeamFoundation\{version}\Cache
浏览器,例如IE(根据您的设置):
C:\Users\{your account}\AppData\Local\Microsoft\Windows\INetCache
如果还是不行,试试下面的方法:
使用 REST API 删除现有扩展:(成功后服务器将 return
204 Not Content
。)Delete http://server:8080/tfs/_apis/gallery/publishers/{publisher}/extensions/{extensionId}
(您可以从 vss-extension.json 文件中获取 publisher
和 extensionId
。)
只需使用 Postman 等工具发送 Delete 请求,或者您可以使用下面的 PowerShell 脚本删除现有扩展:
Param(
[string]$tfsurl = "http://server:8080/tfs",
[string]$publisher = "Andy",
[string]$extensionId = "sample-extension",
[string]$user = "username",
[string]$token = "password"
)
# Base64-encodes the Personal Access Token (PAT) appropriately
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))
$baseUrl = "$tfsurl/_apis/gallery/publishers/$publisher/extensions/$($extensionId)?api-version=3.2-preview.2"
$response = (Invoke-RestMethod -Uri $baseUrl -Method Delete -ContentType "application/json" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)})
- 重新上传固定扩展。
另一种解决方法是更改固定扩展的扩展 ID 并重新打包,然后上传。