【发布时间】:2017-09-15 11:39:21
【问题描述】:
有人知道如何编写 PowerShell 脚本来自动化 Team Foundation Server 的“获取最新版本”功能吗?
我尝试了几个例子,但没有一个有效。
这是我目前的代码:
#Load Reference Assemblies
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.Client")
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.Build.Client")
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.Build.Common")
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.WorkItemTracking.Client")
Function Get-TFSLatestFromVersionControls
{
param
(
#FQDN to SCCM Server
[Parameter(Mandatory=$true)][string]$YourServerPath = "$/DEV",
[Parameter(Mandatory=$true)][string]$YourLocalPath = "C:\Project\DEV",
[Parameter(Mandatory=$false)][string]$tfsCollectionUrl = "http://10.0.10.200:8080/tfs/collection"
)
#Delete the old local copy
if((Test-Path -Path ($YourLocalPath)) -eq 1 )
{
Remove-Item -Path $YourLocalPath -Recurse
New-Item -Path $YourLocalPath -Type directory
Read-Host -Prompt "Delete the old local copy"
}
#Get Team Project Collection
$teamProjectCollection = [Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory]::GetTeamProjectCollection($tfsCollectionUrl)
#enter a path to your tfs server
$tfsServer = $tfsCollectionUrl
# get an instance of TfsTeamProjectCollection
$tfs=get-tfsserver $tfsServer
# get an instance of VersionControlServer
$vCS = $tfs.GetService([Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer])
$TeamProject = $YourServerPath.Remove(0,2)
$tfsProject = $vcs.GetTeamProject($TeamProject)
$workspace = $vcs.GetWorkspace($YourLocalPath)
if($workspace -eq $null)
{
$vcs.DeleteWorkspace("TFS-"+$env:COMPUTERNAME,$env:USERNAME)
$workspace = $vcs.CreateWorkspace("TFS-"+$env:COMPUTERNAME, $env:USERNAME)
Read-Host -Prompt "Delete the old workspace"
}
$workspace.Map($YourServerPath, $YourLocalPath)
$workspace.Get([Microsoft.TeamFoundation.VersionControl.Client.VersionSpec]::Latest ,[Microsoft.TeamFoundation.VersionControl.Client.GetOptions]::Overwrite)
Read-Host -Prompt "Get Latest"
}
【问题讨论】:
-
不重复没有解决
-
您是否尝试过编写任何代码? StackOverflow 不是代码编写服务。向我们展示您的尝试,我们或许可以提出解决方案。
-
我已经编辑了我的帖子标记
-
您可以使用Team Foundation Server Power Tools,打开Windows PowerShell 控制台,然后从Visual Studio 加载Team Foundation cmdlet,然后您就可以使用版本控制了。更多详情请参考stackoverflow.com/questions/21299908/…
标签: powershell tfs