从代码中打开 Visual Studio 中的 TFS 查询

Open TFS Query in Visual Studio from code

我有一个访问 TFS、检索查询、修改它(它将更改日期设置为 >= 'last time I executed it')的代码,然后我想在 Visual Studio - 就好像我在团队资源管理器中双击了我的预定义查询之一。

备注:不想自己写UI显示结果。但是我不能使用预定义查询或修改预定义查询,因为 VS 不支持像 [System.ChangedDate] >= '2015-04-02T11:45:00.0000000' 这样具有时间精度的查询。但是可以使用 new Query(workitemstore, query, null, false) 在代码中指定和执行这样的查询,其中最后一个参数表示我需要时间精度(而不是日期精度)。

一种选择是将您的查询存储在 wiq(工作项查询)文件中,然后直接打开它。当 VS 创建了此类文件的关联并自行打开时,它将自动实例化 VS 并 运行 查询(如果 VS 已经 运行ning 那么它将在新的 window 中打开).

wiq 文件是一个非常简单的 xml 文件,具有以下结构:

<?xml version="1.0" encoding="utf-8"?>
<WorkItemQuery Version="1">
  <TeamFoundationServer>url of TFS server</TeamFoundationServer>
  <TeamProject>your project name</TeamProject>
  <Wiql>your query (e.g. SELECT ...)</Wiql>
</WorkItemQuery>

您可以通过保存现有查询来简单地创建此文件的模板,然后将模板中的时间替换为您想要的任何时间。

不幸的是,似乎(在与一些 TFS 管理员交谈、浏览网页并四处试验之后)只有在通过 TFS 执行查询时才能打开时间精度(= 关闭日期精度)API。我 "back" 将我的查询导出到 Excel 并通过使用团队功能区上的更新按钮获取最新数据,然后在更改的日期列上应用过滤器。