Я пытаюсь открыть страницу подробных сведений об успешной сборке в VisualStudio с помощью сценария PowerShell. Я могу подключиться к коллекции моего тестового проекта и некоторого Builddefinition. Я получил vstfs-Link для каждой сборки, но как я могу открыть эту ссылку в Visual Studio? Я попытался использовать EncodeUri, GetArtifactUrl и GetArtifactUrlExternal. Для GetArtifactUrl я получил эту ошибку:Открыть ссылку VSTFS в Visual Studio с помощью скрипта PowerShell
Невозможно преобразовать аргумент «artId» со значением: «vstfs: /// Build/Build/12345», для «GetArtifactUrl» введите «Microsoft.TeamFoundation.ArtifactId»: «Can not преобразуйте значение «vstfs: /// Build/Build/12345» типа «System.Uri» на тип «Microsoft.TeamFoundation.ArtifactId». "
Может ли кто-нибудь дать мне совет, как преобразовать ссылку vstfs в нечто, что я могу открыть в VisualStudio?
Благодаря
[void] [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.Client")
[void] [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.Build.Client")
[void] [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.VersionControl.Client")
[void] [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.Common")
[void] [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.VisualStudio.TeamFoundation")
[void] [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.VisualStudio.TeamFoundation.Client")
[void] [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.VisualStudio.TeamFoundation.VersionControl")
$uri = [URI]"http://MyServer:8080/tfs/DefaultCollection"
$project = "MyProject"
$buildDefinition = "MyBuildDefinition"
# CONNECT
$collection = [Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory]::GetTeamProjectCollection($uri)
# BUILDS
$buildServer = $collection.GetService([Microsoft.TeamFoundation.Build.Client.IBuildServer])
$buildSpec = $buildServer.CreateBuildDetailSpec($project, $buildDefinition)
$ILinkingService = $collection.GetService([Microsoft.Teamfoundation.ILinking])
$CommonService = $collection.GetService([Microsoft.TeamFoundation.Common])
# QUERY
$buildSpec.InformationTypes = $null
$buildSpec.MaxBuildsPerDefinition = 5
$buildSpec.QueryOrder = [Microsoft.TeamFoundation.Build.Client.BuildQueryOrder]::FinishTimeDescending
$results = $buildServer.QueryBuilds($buildSpec)
foreach($build in $results.Builds)
{
Write-Host $build.Status
#$testUrl = $ILinkingService.GetArtifactUrl($build.Uri)
$testUrl = $CommonService.EncodeUri($build.Uri)
Write-Host $testUrl
}