如何使用 powershell 从 TFS 获取 WorkItemStore?
我尝试过以下方法:
function get-tfs {
param(
[string] $ServerName = "http://MyServer:8080/tfs"
)
begin{}
process
{
[psobject] $tfs = [Microsoft.TeamFoundation.Client.TeamFoundationServerFactory]::GetServer($serverName)
return $tfs
}
end{}
}
[Reflection.Assembly]::LoadFrom("C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ReferenceAssemblies\v2.0\Microsoft.TeamFoundation.WorkItemTracking.Client.dll")
上面的代码执行得很好,我有一个 $tfs 的值。
然后我这样做:
$wis = $tfs.GetService([Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemStore])
但 $wis 为空。如果我这样做,同样的事情:
$wis = $tfs.TfsTeamProjectCollection.GetService([Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemStore])
另外,如果我这样做,powershell会说它找不到程序集“Microsoft.TeamFoundation.WorkItemTracking.Client”,即使它刚刚找到并在一秒钟前加载它:
添加类型 -AssemblyName Microsoft.TeamFoundation.WorkItemTracking.Client
我不明白为什么它找到了程序集却突然找不到了。
我究竟做错了什么?
这样的事情对我有用:
function get-tfs
{
param([string] $ServerName = "http://myserver:8080/tfs")
$binpath = "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ReferenceAssemblies\v2.0"
Add-Type -path "$binpath\Microsoft.TeamFoundation.Client.dll"
Add-Type -Path "$binpath\Microsoft.TeamFoundation.WorkItemTracking.Client.dll"
$creds = New-Object Microsoft.TeamFoundation.Client.UICredentialsProvider
$teamProjectCollection = New-Object Microsoft.TeamFoundation.Client.TfsTeamProjectCollection $ServerName,$creds
$ws = $teamProjectCollection.GetService([Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemStore])
return $ws
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)