簡體   English   中英

使用powershell從Tfs獲取工作項存儲

[英]Get work item store from Tfs using powershell

如何使用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',即使它剛剛發現它並在一秒前加載它:Add-Type -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
}

我在使用Powershell嘗試獲取WorkItemStore時遇到了問題。 需要克隆PBI並克隆任務。 發現這個.Net soln。 像魅力一樣工作! 實際上不得不在History null異常周圍添加一個try catch,但在那之后,bam!

https://github.com/DanielMeixner/WorkItemDeepCopy/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM