【发布时间】:2010-11-07 18:05:45
【问题描述】:
我需要创建一个宏或 VS.net 插件,它将当前日期和时间以及用户名插入到 TFS 工作项的字段中。
示例宏不起作用,我找不到任何方法来以编程方式访问在 IDE 中打开的 TFS 工作项。
这可能吗?
【问题讨论】:
标签: visual-studio visual-studio-2008 tfs macros
我需要创建一个宏或 VS.net 插件,它将当前日期和时间以及用户名插入到 TFS 工作项的字段中。
示例宏不起作用,我找不到任何方法来以编程方式访问在 IDE 中打开的 TFS 工作项。
这可能吗?
【问题讨论】:
标签: visual-studio visual-studio-2008 tfs macros
AFAIK,不,这是不可能的。可以使用在 IDE 中打开的同一个 WorkItem。这可以通过连接到 WorkItemStore 实例并打开同一个项目来完成。
但是,我认为无法访问在 IDE 中打开的 WorkItem 实例。这将要求 TFS 客户端公开一个服务,您可以从中查询活动的 WorkItem。我不相信他们会这样做。
【讨论】:
如果您编写自己的自定义 WIT 控件,这可能是可能的。即使这样,我也不确定它是否可以通过宏访问——可能还需要编写一个 VS 插件。
不过,无论您在做什么,内置的 TFS 工作流引擎都会更好地为您服务。假设您想在有人解决错误时记录当前日期和当前用户。您所要做的就是覆盖两种状态之间转换的 XML 定义。例如:
<Transition from="Not Done" to="Ready For Test">
<ACTIONS>
<ACTION value="Microsoft.VSTS.Actions.Checkin" />
</ACTIONS>
<REASONS>
<DEFAULTREASON value="Sent to QA" />
</REASONS>
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
<COPY from="currentuser" />
<VALIDUSER />
<REQUIRED />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
<SERVERDEFAULT from="clock" />
</FIELD>
</FIELDS>
</Transition>
如果这还不够,这里有一个关于 WIT 定制的 14 部分 (!) 系列:http://blogs.msdn.com/eugenez/archive/2009/05/10/work-item-customization-tidbits-custom-controls-part-14-of-x.aspx
【讨论】: