以编程方式将控件部署到 VS.NET 工具箱
本文介绍了如何以编程方式将自定义控件和组件部署到 Visual Studio 工具箱中的特定选项卡。这可以与安装程序一起使用,以实现自动部署。
引言
在本文中,我们将逐步介绍使用代码将自定义 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 个参数
- 要将控件添加到的选项卡的名称。
- 要添加到工具箱的组件的路径(DLL 文件)。
- 工具箱项目的格式,可以是控件或简单的文本段。
演示项目包括一个 UI,用户可以在其中选择要加载的 DLL 文件,并且可以添加或删除项目。可以修改该项目,以去除所有 UI 部分,只保留一个基本窗体,并且可以将用于添加项目的所有代码写入 form_load
部分。
使用此应用程序创建一个可执行文件,该 EXE 可以与安装程序一起使用,该安装程序运行此可执行文件,该可执行文件又将所有控件添加到工具箱。
创建安装和部署项目
打开 Visual Studio,然后从“新建项目”屏幕中选择“安装和部署项目”,然后选择“安装项目”,为其提供一个位置,然后打开该项目。将所有应用程序文件和 DLL 复制到应用程序文件夹;会自动检测并添加依赖项。
从“解决方案资源管理器”窗口中单击“自定义操作编辑器”,左侧窗格现在将显示安装程序的四个默认操作:“安装”、“提交”、“回滚”和“卸载”。
右键单击“安装”,然后选择“添加自定义操作”,这将打开一个对话框以添加自定义操作文件,选择可执行文件“AddToToolBar.exe”并添加该文件。添加文件后,将添加文件的 CustomInstaller
属性设置为“False
”。这应该会从安装程序调用 EXE 文件。
生成安装项目,控件包即可部署。