首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有Powershell的"GetLatest“不会在新的TFS工作区上下载文件

带有Powershell的"GetLatest“不会在新的TFS工作区上下载文件
EN

Stack Overflow用户
提问于 2017-03-31 09:10:28
回答 2查看 123关注 0票数 0

我正在尝试创建一个Powershell脚本,该脚本将在临时位置设置一个全新的工作区,对选定的解决方案/项目执行GetLatest,并下载源代码,以便触发进一步的构建/版本控制操作。

我想我的脚本或多或少是对的,但问题是每次我运行这个,它都告诉我有0次操作.我已经有最新的版本了。这就根本没有下载任何东西。

有人能看出我做错了什么吗?

代码语言:javascript
复制
$subfolder = [System.Guid]::NewGuid().ToString()
$tfsServer = "http://tfsserver:8080/tfs"
$projectsAndWorkspaces = @(
    @("$/Client1/Project1","D:\Builds\$subfolder\Client1\Project1"),
    @("$/Client1/Project2","D:\Builds\$subfolder\Client1\Project2"),
)


$tfsCollection = [Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory]::GetTeamProjectCollection($tfsServer)
$tfsVersionCtrl = $tfsCollection.GetService([type] "Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer")
$tfsWorkspace = $tfsVersionCtrl.CreateWorkspace($subfolder, $tfsVersionCtrl.AuthorizedUser)

Write-Host "Operations:"

foreach ($projectAndWs in $projectsAndWorkspaces)
{
    if (-not(Test-Path $projectAndWs[1]))
    {
        New-Item -ItemType Directory -Force -Path $projectAndWs[1] | Out-Null
    }

    $tfsWorkspace.Map($projectAndWs[0], $projectAndWs[1])
    $recursion = [Microsoft.TeamFoundation.VersionControl.Client.RecursionType]::Full
    $itemSpecFullTeamProj = New-Object Microsoft.TeamFoundation.VersionControl.Client.ItemSpec($projectAndWs[0], $recursion)
    $fileRequest = New-Object Microsoft.TeamFoundation.VersionControl.Client.GetRequest($itemSpecFullTeamProj, [Microsoft.TeamFoundation.VersionControl.Client.VersionSpec]::Latest)
    $getStatus = $tfsWorkspace.Get($fileRequest, [Microsoft.TeamFoundation.VersionControl.Client.GetOptions]::Overwrite)
    Write-Host ("[{0}] {1}" -f $getStatus.NumOperations, ($projectAndWs[0].Substring($projectAndWs[0].LastIndexOf("/") + 1)))
}

Write-Host "Finished"
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-03 05:00:48

$tfsServer = "http://tfsserver:8080/tfs"应该是$tfsServer = "http://tfsserver:8080/tfs/nameOfACollection"

票数 1
EN

Stack Overflow用户

发布于 2017-03-31 12:10:48

"$/Client1/Project1"字符串闻起来很香。我会在美元符号之前加一个反号,这样它就不会被读成变量,也不会使用单引号。

"`$/Client1/Project1"单引号'$/Client1/Project1'

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43136793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档