0

ローカル マシンの TFS から最新のコードをダウンロードする PS スクリプトがありますが、最新ではなく特定のラベル付きコードをダウンロードしたいと考えています。

以下は、TFS に存在する最新のコードをダウンロードするスクリプトです。

$sourceLocation = "http://vwmaztfsapp:8080/tfs/MatchCollection"
  
$tfsCollectionUrl = New-Object System.URI($sourceLocation);  
  
$serverPath = "$/Match Web/Installscript Projects/Utility Scripts"  
  
#It gets copied at local path with the above folder sequence
$localPath = "C:\"

    
$visualStudiopath = 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer'
    Add-Type -Path "$visualStudiopath\Microsoft.TeamFoundation.VersionControl.Client.dll"
    Add-Type -Path "$visualStudiopath\Microsoft.TeamFoundation.Common.dll"
    Add-Type -Path "$visualStudiopath\Microsoft.TeamFoundation.WorkItemTracking.Client.dll"
    Add-Type -Path "$visualStudiopath\Microsoft.TeamFoundation.Client.dll"
    Add-type -path "$visualStudiopath\Microsoft.TeamFoundation.ProjectManagement.dll"
    Add-Type -Path "$visualStudiopath\Microsoft.TeamFoundation.Build.Common.dll"


$tfsCollection = New-Object -TypeName Microsoft.TeamFoundation.Client.TfsTeamProjectCollection -ArgumentList $tfsCollectionUrl  

$VersionControl = $tfsCollection.GetService([Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer])  
$latest = [Microsoft.TeamFoundation.VersionControl.Client.VersionSpec]::Latest  
$recursionType = [Microsoft.TeamFoundation.VersionControl.Client.RecursionType]::Full     
  
  
    try  
    {  
  
        foreach ($item in $VersionControl.GetItems($serverPath, $latest,$recursionType).Items)  
        {  
            $target =   [io.path]::Combine($localPath,$item.ServerItem.Substring(2))  
            $exists=[System.IO.Directory]::Exists($target)  
  
            if($item.ItemType -eq "Folder" -and !$exists)  
            {  
                New-Item $target -Type Directory  
            }  
            if($item.ItemType -eq "File")  
            {  
                $item.DownloadFile($target)  
            }  
        }  
        Write-Host "`n Successfully downloaded all the files to the target folder: " $localPath -ForegroundColor Green  
    }  
    catch  
    {  
        $ErrorMessage = $_.Exception.Message  
        $FailedItem = $_.Exception.ItemName  
        Break  
    }  

を使用してみましMicrosoft.TeamFoundation.VersionControl.Client.LabelVersionSpecたが、うまくいきませんでした。適用したラベルを使用して「$/Match Web」コードをダウンロードできる正しいリンクまたはスクリプトを教えてください。これは、たとえば「PreBuildLabel-MatchEnterpriseBuild1」の「$/Match Web」ブランチに適用したラベルです。

@Assael Azran、$vsの結果を下回る

ここに画像の説明を入力

4

1 に答える 1