使用TFS SDK显示项目历史记录窗口

mad*_*dd0 5 .net tfs tfs-sdk

我正在编写一个通过官方SDK与TFS集成的应用程序,以自动化和支持各种常见操作.虽然大多数都是自动化,而且TFS API几乎暴露了我需要的一切,但是一些操作需要用户干预,所以我需要向用户显示信息.

我发现了一些方法Difference.VisualDiffItems,可以让我使用Visual Studio使用的相同UI轻松地直观地比较文件.我还需要显示项目的历史记录(包括分支,重命名等),我很乐意使用内置的UI而不必编写自己的UI.项目历史UI实际上非常复杂,我认为MS会在SDK中提供它,但我似乎无法找到它.

任何人都可以确认TFS SDK没有提供可视化项目历史记录的必要方法,或者指向正确的方向吗?

Jon*_*nno 4

在 TF.exe 实用程序上使用 ILSpy,您可以看到用于查看历史记录的 UI 控件是Microsoft.TeamFoundation.VersionControl.Controls.DialogHistory。该类是内部类,因此除非您喜欢使用反射,否则您将无法自己实例化该对象。

实际上,搜索该类名会出现此social.msdn页面: http://social.msdn.microsoft.com/Forums/ar/tfsversioncontrol/thread/9a10473e-d381-4e83-bde9-dd423f430feb

与您的问题最相关的一句话来自 Buck Hodges: “您确实可以选择通过反思来获取它们。由于它们不是公开的,我们可能会在不同版本(包括服务包)之间更改它们,所以你接受被破坏的风险”

另一种方法是直接使用命令行调用 TF(通过直接引用 TF.exe 并将其加载到同一进程中,或者使用所需的命令行启动一个新进程)。在任何一种情况下,您可能都必须处理传递到标准输出的错误消息,您可能需要也可能不需要它们。

希望这可以帮助。