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

标签 .net tfs tfs-sdk

我正在编写一个通过官方 SDK 与 TFS 集成的应用程序,以自动化和支持各种常见操作。尽管其中大部分是自动化的,并且 TFS API 几乎公开了我需要的一切,但有些操作需要用户干预,因此我需要向用户显示信息。

我找到了诸如 Difference.VisualDiffItems 之类的方法这使我可以使用 Visual Studio 使用的相同 UI 轻松地直观地比较文件。我还需要显示 项目历史 (包括分支、重命名等),我喜欢使用内置 UI 而不是必须编写自己的 UI。项目历史用户界面实际上非常复杂,我以为 MS 会在 SDK 中提供它,但我似乎找不到它。

任何人都可以确认 TFS SDK 没有提供必要的方法来可视化项目的历史记录或为我指明正确的方向(如果有)?

最佳答案

在 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:
“您确实可以选择通过反射(reflection)获得它们。由于它们不是公开的,我们可能会在不同版本之间更改它们(包括服务包),因此您接受被破坏的风险”

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

希望这可以帮助。

关于.net - 使用 TFS SDK 显示项目历史记录窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8267888/

相关文章:

tfs - 如何以编程方式跨多个分支跟踪 TFS 变更集?

.net - 如何防止新的 WPF 表单窃取焦点?

tfs - Team Foundation Server 2010 不尊重我的 .tfignore 文件

TFS 2015 找不到具有以下功能的代理 : msbuild, java、sonarqube

tfs - TestAgentInstaller 服务被标记为交互式服务

tfs - 如何从 TFS 获取项目列表?

.net - .NET 代码混淆真的值得吗?

.net - 使用 DataGridView 中的 DataGridViewComboBoxColumn 将绑定(bind)字段的值设置为 NULL

.net - WPF:如何使用 XAML 隐藏 GridViewColumn?

Java TFS SDK - 如何获取特定提交中所做的更改