我如何从源代码管理资源管理器使用VS包得到当前分支路径
问题描述:
我已经创建了VS扩展,它在源代码管理资源管理器上创建菜单命令,右键单击它打开自定义窗体,现在我想显示当前TFS路径从那里用户右键单击)在该自定义窗体中。称为TFS“分支和合并=>分支”源路径。我如何从源代码管理资源管理器使用VS包得到当前分支路径
任何帮助欣赏。
答
可以使用VersionControlExplorerExt对象及其属性SelectedItems,CurrentFolderItem等从封装它会是这样的:
private void MenuItemCallback(object sender, EventArgs e)
{
Microsoft.VisualStudio.TeamFoundation.VersionControl.VersionControlExt versionControlExt;
Microsoft.VisualStudio.TeamFoundation.VersionControl.VersionControlExplorerExt versionControlExplorerExt;
EnvDTE.DTE dte;
try
{
dte = base.GetService(typeof(EnvDTE.DTE)) as EnvDTE.DTE;
versionControlExt = dte.GetObject("Microsoft.VisualStudio.TeamFoundation.VersionControl.VersionControlExt")
as Microsoft.VisualStudio.TeamFoundation.VersionControl.VersionControlExt;
versionControlExplorerExt = versionControlExt.Explorer;
MessageBox.Show(versionControlExplorerExt.CurrentFolderItem.LocalPath);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
答
Source Control Explorer的扩展性应通过VersionControlExt.Explorer类暴露。 VersionControlExt.Explorer.SelectedItems属性应该包含所选项目的服务器路径。这是一个old blog post,它也可能有一些用于编写扩展的有用信息。