通过powershell获取所有tfs警报订阅的列表(通过powershell获取.Net程序集?)

时间:2012-08-05 16:30:26

标签: powershell tfs2010

我正在尝试将我的工具移到powershell,可以在powershell中完成this吗?我真正感兴趣的是:

IEventService es = tfs.GetService(typeof(IEventService)) as IEventService;
List<Subscription> ls = es.GetAllEventSubscriptions().ToList();

欢呼声

编辑:我真正想做的可能是使用PowerShell的.NET程序集,这可能是Using .NET library from PowerShell

的副本

1 个答案:

答案 0 :(得分:1)

这是我很久以前在博客上找到的PowerShell函数中的TFS API,可以帮助您入门。我把它发布到了GitHub Gist。基本上,您确保已将TFS程序集加载到AppDomain中,然后您可以将所需的任何TFS服务接口添加到对象中,并像在任何c#应用程序中一样操作它们。

https://gist.github.com/3288447

从上面的Gist中的方法返回TFS对象后,您可以对加载的服务进行操作,如下所示:

 #use work item service
$tfs = get-tfs $env:TFSSERVERURL -silent
$project = $tfs.wit.Projects | ?{ $_.Name -eq $projectName}
#todo - replace with text for query or file read -- this is deprecated
$query = $project.StoredQueries | ?{ $_.Name -eq 'Active Bugs' }
$queryText = $query.QueryText.Replace("@project","'$projectName'")

$results = $tfs.wit.Query($queryText) 
#do something with the results...

在上面的请求中,你可以改变get-tfs方法,将你的服务接口添加到加载的集合中,然后对.NET方法进行操作,就像我在上面的例子中一样。