扩展TFS Source-Control-Explorer

时间:2015-10-01 04:08:28

标签: tfs vsix source-control-explorer

我已经创建了一个Visual Studio 2012扩展,将ComboBox放在Source Control Explorer中。

我在我的vsct文件中使用了这个guid:

  <!-- MyComboBox in Source Control Explorer -->
  <Combo guid="myMainguid" id="cmdSSEComboBox" priority="0x0700" type="DropDownCombo" defaultWidth="130" idCommandList="cmdSSEGetItemsComboBox">
    <Parent guid="guidSourceControlExplorer" id="SSEToolBar" />
    <CommandFlag>IconAndText</CommandFlag>
    <CommandFlag>CommandWellOnly</CommandFlag>
    <Strings>
      <ButtonText>MyComboBox:</ButtonText>
    </Strings>
  </Combo>

<!-- Source Control Explorer -->
<GuidSymbol name="guidSourceControlExplorer" value="{FFE1131C-8EA1-4D05-9728-34AD4611BDA9}">
  <IDSymbol name="SSEToolBar" value="0x1106"/>
</GuidSymbol>

我想放置&#34; MyComboBox &#34;在下面的组中,同一组中有标签&#34;来源位置&#34;与导航器。

有可能吗? 谢谢, 威廉萨德

1 个答案:

答案 0 :(得分:1)

Source Control Explorer不太可能是可自定义的元素。从技术上讲,它不是Visual Studio的一部分,而是一个加载项/扩展本身。即使它是可定制的,它也很可能不会接受vsct的东西。

人们不得不创建自己的Source Control Explorer clones来自定义内容。

充其量,您可以通过vsct将自己的自定义工具栏添加到Source Control Explorer窗口,无论如何都是VS ToolWindow。但是,您将需要工具栏的GUID。它未列在standard VS window guids

希望这至少可以为你提供一个方向。

编辑: 您可以使用下面的代码浏览Source Control Explorer窗口。本质上,枚举DTE中的所有窗口(在VsPackage中)并在找到窗口时放置调试点。然后你可以探索它。在屏幕截图中,您可以看到我深入到CommandBar。如果不是通过VSCT,您可以在运行时注入组合。

Finding the CommandBar

 for (int i = 0; i < dte.Windows.Count; i++)
 {
     try
     {
         if (dte.Windows.Item(i).Caption.ToLower().Contains("source control"))
         {
             MessageBox.Show("");
         }
     }
     catch (Exception)
     {
     }
 }