如何将附加工具 windows 添加到 Visual Studio 扩展?

How to add additional tool windows to a Visual Studio Extension?

创建扩展时 for Visual Studio 2013 默认设置一个工具 window。但是,我想要一个 second 工具 window,但看不出应该怎么做。

好吧,我刚刚发现了一些东西 - 所以我要回答我自己的问题,以便遇到同样问题的其他人可以利用它:

  1. this tutorial 一样设置您的扩展程序,但检查“工具 Window

  2. 为工具创建一个新的UserControlWindow“ToolWindow2Control”并复制粘贴[=40的内容=]ToolWindowControl.xaml & ToolWindowControl.xaml.cs相应

  3. 添加一个class“工具Window2”并复制粘贴[=111中的内容=]。将 GUID 更改为新的(工具->创建 GUID)

  4. NameOfYourProject.vsct中添加用于在View->Other Windows[中显示第二个条目的代码=77=] 通过复制 按钮部分 中的按钮。更改ButtonText、优先级、Button的id和Icon的id。

  5. 将按钮的 ID 添加到页面底部符号下的条目中。它应该是 guidNameOfYourProjectCmdSet.

  6. 下的第三个条目
  7. 打开PkgCmdID.cs(或PkgCmdIDList.cs)添加id按钮也在那里,例如
    public const uint cmdidMyTool2 = 0x102;

  8. 向您的项目/资源添加另一个图标。然后在 NameOfYourProject.vsct 的位图部分添加另一个位图条目,其中包含您之前为图标提供的 GUID-id。像这样:
    <Bitmap guid="guidImages2" href="Images\test.ico" usedList="testIcon"/>
    并在 Symbols 部分创建另一个 GuidSymbol 条目,其中包含一个新的 GUID 和一个与您在 usedList 中使用的名称相同的 IDSymbol 条目,如下所示:
    <GuidSymbol name="guidImages2" value="{7BC1F97F-2693-4186-91CC-A35AE95886CE}" > <IDSymbol name="testIcon" value="1" /> </GuidSymbol>

  9. 将此行添加到 NameOfYourProjectPackage.cs:
    [ProvideToolWindow(typeof(ToolWindow2))]

  10. NameOfYourProjectPackage.cs 中,通过复制粘贴下面 // Create the command for the tool window 下的 3 行来编辑 Initialize 方法。在第一行中使用我们在第 6 步中提供的 ID (cmdidMyTool2)。在第 2 行中使用新的 MenuCommand 事件处理程序 ShowToolWindow2。并更改变量名称。

  11. 创建新方法 ShowToolWindow2。从 ShowToolWindow 方法中复制粘贴并将第一行中的 typeof 更改为 ToolWindow2

应该是这样。我希望我没有忘记任何事情。然后可以在Views->OtherWindows

下打开两个windows

我创建了一个指南:

HOWTO:在 Visual Studio 包中使用 ToolWindowPane class 创建工具窗口 http://www.visualstudioextensibility.com/2015/02/20/mz-tools-articles-series-howto-create-a-toolwindow-with-a-toolwindowpane-class-in-a-visual-studio-package/