本演练演示如何使用自动化创建操作 Visual Studio 集成开发环境 (ide) 的托管 VSPackage (IDE)。 在发生的 VSPackage 创建示例托管 VSPackage 然后使用自动化方法显示在 输出 窗口的 Visual Studio 属性。
系统必备
若要完成本演练,您必须安装 Visual Studio 2010 SDK。
备注
有关 Visual Studio SDK 的更多信息,请参见 扩展 Visual Studio 概述。若要查找有关中所列如何下载 Visual Studio SDK,请 Visual Studio Extensibility Developer Center 参见 MSDN 网站上。
Visual Studio 包 " 项目模板的位置
Visual Studio 包 " 项目模板可以在 新项目 对话框的三个不同位置找到:
在 Visual Basic 扩展性下。 该项的默认语言是 Visual Basic。
在 C# 扩展性下。 该项目的默认语言是 C#。
在其他项下键入扩展性。 该项的默认语言是 C++。
创建托管 VSPackage
创建新的 Visual Studio 包 " 项目命名 自动。
有关如何创建托管 VSPackage 的更多信息,请参见 演练:使用 Visual Studio 创建包模板的菜单命令。
在 选择一种编程语言 页,将语言为 Visual C#。
保留默认值。 基本的 VSPackage 信息 页。
在 选择 VSPackage 选项 页上,选择 菜单命令 复选框。
在 命令选项 页,请将 命令名 到 自动。
单击**“完成”**按钮。
模板生成名为 " 的托管项目。
生成解决方案并验证它在编译时不会出错。
调用自动化模型
在 解决方案资源管理器 窗口中,右击自动项目节点然后单击 添加引用。
在 添加引用 对话框的 .NET 选项卡中,双击 EnvDTE。
此操作添加一个对 EnvDTE 自动化命名空间。
在 AutoPackage 文件中,添加以下命名空间引用。
Imports EnvDTE
using EnvDTE;
在 AutoPackage 文件,用以下行替换 MenuItemCallback 方法的主体:
Private Sub MenuItemCallback(ByVal sender As Object, ByVal e As EventArgs) Dim dte As DTE dte = CType(GetService(GetType(DTE)), DTE) Dim myString As String = "Name is " & dte.Name + vbCrLf & "Version is " & dte.Version Dim windows As Windows = dte.Windows Dim window As Window = CType(windows.Item(EnvDTE.Constants.vsWindowKindOutput), Window) window.Visible = True Dim outputWindow As OutputWindow = CType(window.Object, OutputWindow) Dim outputWindowPane As OutputWindowPane = outputWindow.OutputWindowPanes.Add("Test") outputWindowPane.Activate() outputWindowPane.OutputString(myString) End Sub
private void MenuItemCallback(object sender, EventArgs e) { DTE dte; dte = (DTE)GetService(typeof(DTE)); string myString = "Name is " + dte.Name + "\rVersion is " + dte.Version; Windows windows = dte.Windows; Window window = (Window)windows.Item("{34E76E81-EE4A-11D0-AE2E-00A0C90FFFC3}"); window.Visible = true; OutputWindow outputWindow = (OutputWindow)window.Object; OutputWindowPane outputWindowPane = outputWindow.OutputWindowPanes.Add("Test"); outputWindowPane.Activate(); outputWindowPane.OutputString(myString); }
此代码调用 GetService 获取表示 Visual Studio IDE 的 DTE 自动化对象。 在 MenuItemCallback 的自动化代码位于名为 测试的 输出 窗口创建一个新的窗格。 Visual Studio 名称和版本到新的 输出 窗格然后编写。
安装和启动自动项目按 F5 调试模式。
这将启动 Visual Studio 的实验性生成 (Visual Studio Exp)。
备注
Visual Studio 的两个版本此时已打开。
在 工具 菜单的 Visual Studio Exp,单击,自动。
名为 测试 的新窗格中 输出 窗口打开并显示以下内容:
Name is Microsoft Visual Studio Version is x.xx
其中 x.xx 是最新 Visual Studio 版本号。
有关自动化示例的更多信息,请 Automation Samples for Visual Studio参见。