65.9K
CodeProject 正在变化。 阅读更多。
Home

以编程方式将控件部署到 VS.NET 工具箱

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.63/5 (13投票s)

2004 年 10 月 2 日

CPOL

3分钟阅读

viewsIcon

152312

downloadIcon

601

本文介绍了如何以编程方式将自定义控件和组件部署到 Visual Studio 工具箱中的特定选项卡。这可以与安装程序一起使用,以实现自动部署。

Sample Image - AddItemToToolBar.jpg

引言

在本文中,我们将逐步介绍使用代码将自定义 Web/Windows 控件和组件添加到 Visual Studio 工具箱的过程。本文将对希望将控件部署到单个程序包中的控件开发人员有所帮助。客户端无需执行额外的操作,例如从 Visual Studio 编辑器引用控件并将其添加到工具箱。运行此应用程序后,它会自动将所有控件添加到工具箱,开发人员可以将组件拖放到页面上并使用它。

也可以从安装程序中将可执行文件作为自定义操作调用。

背景

本文档假定您基本熟悉 Visual Studio 2003、使用 C# 或 Visual Basic .NET 在 .NET Framework 中进行 Windows 窗体编程,以及对 Reflection 和 DTE 机制的一些基本了解。

代码

此代码实际上使用反射来创建 Visual Studio .DTE.7.1 的实例。在 Visual Studio 中,DTE 对象是自动化模型的根,其他对象模型通常称之为“应用程序”。“DTE”是“Development Tools Environment”(开发工具环境)的缩写。

//EnvDTE class cannot be instantiated using the new keyword
//instead use Reflection to get an instance of the DTE Object.
System.Type t = System.Type.GetTypeFromProgID("VisualStudio.DTE.7.1"); 
object obj = System.Activator.CreateInstance(t, true); 
dteObject = (EnvDTE.DTE)obj;

获取 DTE 对象后,可以访问特定类型的所有方法和属性,并且使用这些属性和方法,我们将项目添加到工具箱。

此代码块向我们展示了如何获取与 Visual Studio 工具箱相对应的窗口对象的实例

//Gets the window Object corrsponding to the visual Studio Toolbox

ToolBoxWnd = dteObject.Windows.Item(EnvDTE.Constants.vsWindowKindToolbox);
tlbTabs = ((ToolBox)ToolBoxWnd.Object).ToolBoxTabs;

ToolBoxTabs 对象提供了一组方法和属性,用于访问工具箱及其 Items 集合。使用这些方法,可以从集合中添加或删除新项目。下面的代码示例使用用户指定的名称创建一个新选项卡,并将用户加载的 DLL 文件中包含的控件添加到该选项卡。

tlbTab = tlbTabs.Add("My New Tab");
ToolBoxWnd.Visible = true;
ToolBoxWnd.DTE.ExecuteCommand("View.PropertiesWindow","");
tlbTab.Activate();
tlbTab.ToolBoxItems.Item(1).Select();
tlbTab.ToolBoxItems.Add("MY New Tab", "C:\\MyControl.dll", 
    vsToolBoxItemFormat.vsToolBoxItemFormatDotNETComponent);

必须使工具箱窗口可见,并且必须激活当前的工具箱选项卡,然后才能将任何控件加载到该选项卡,否则控件将添加到默认选项卡。

ToolBoxItems 的添加方法采用 3 个参数

  1. 要将控件添加到的选项卡的名称。
  2. 要添加到工具箱的组件的路径(DLL 文件)。
  3. 工具箱项目的格式,可以是控件或简单的文本段。

演示项目包括一个 UI,用户可以在其中选择要加载的 DLL 文件,并且可以添加或删除项目。可以修改该项目,以去除所有 UI 部分,只保留一个基本窗体,并且可以将用于添加项目的所有代码写入 form_load 部分。

使用此应用程序创建一个可执行文件,该 EXE 可以与安装程序一起使用,该安装程序运行此可执行文件,该可执行文件又将所有控件添加到工具箱。

创建安装和部署项目

打开 Visual Studio,然后从“新建项目”屏幕中选择“安装和部署项目”,然后选择“安装项目”,为其提供一个位置,然后打开该项目。将所有应用程序文件和 DLL 复制到应用程序文件夹;会自动检测并添加依赖项。

Setup Screen

从“解决方案资源管理器”窗口中单击“自定义操作编辑器”,左侧窗格现在将显示安装程序的四个默认操作:“安装”、“提交”、“回滚”和“卸载”。

Setup ScreenShot

右键单击“安装”,然后选择“添加自定义操作”,这将打开一个对话框以添加自定义操作文件,选择可执行文件“AddToToolBar.exe”并添加该文件。添加文件后,将添加文件的 CustomInstaller 属性设置为“False”。这应该会从安装程序调用 EXE 文件。

Setup Screenshot

生成安装项目,控件包即可部署。

© . All rights reserved.