我有一个控制台应用程序,它使用 TFS API 创建工作项。我希望应用程序在打开创建的工作项的情况下启动 Visual Studio。我试过:
Process.Start("vstfs:///WorkItemTracking/WorkItem/123?url=http://mytfs:8080/tfs/mycollection")
这将打开 Visual Studio(我有 2013 update3),并打开一个工作项,显示“正在打开工作项 123...”,但 VS 从未真正完成此打开。如果我关闭此窗口,则会收到错误消息The given key was not present in the dictionary
.
我从命令行/devenv 尝试过,两者都得到了相同的结果:
C:\> start vstfs:///WorkItemTracking/WorkItem/123?url=http://mytfs:8080/tfs/mycollection
C:\> "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe" /Tfslink vstfs:///WorkItemTracking/WorkItem/123?url=http://mytfs:8080/tfs/mycollection
我尝试打开另一个 TFS 项目 - 一个构建 - 并且效果很好:
C:\> start vstfs:///Build/Build/111?url=http://mytfs:8080/tfs/mycollection
I could 在 Web UI 中打开它们 http://msdn.microsoft.com/en-us/library/bb822129.aspx- 但我的用户更喜欢 Visual Studio。
那么,如何在 VS 中启动工作项?
我发现我能够使用 ShellExecute() 启动 TFS 并加载所需的工作项。
DECLARE INTEGER ShellExecute ;
IN SHELL32.dll ;
INTEGER nWinHandle,;
STRING cOperation,;
STRING cFileName,;
STRING cParameters,;
STRING cDirectory,;
INTEGER nShowWindow
ShellExecute(0, 'OPEN', "vstfs:///WorkItemTracking/WorkItem/999999?url=http://mytfsserver:8080/tfs/defaultcollection", '', '', 1)
这个代码示例来自VFP,但是前提应该是到处都是一样的。
- 在Shell32.dll中声明该函数
- 使用正确的参数调用函数
以下是如何从命令窗口使用工作项启动 TFS:
START vstfs:///WorkItemTracking/WorkItem/999999?url=http://mytfsserver:8080/tfs/defaultcollection
您可以创建一个批处理文件并传入工作项编号以使其更容易。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)