如何:定义和安装建模扩展
在最终的Visual Studio,您可以定义扩展到建模图。 通过这种方式,您可以采用关系图和模型来满足您自己的需要。 例如,您可以定义菜单命令、UML 配置文件、验证约束和工具箱项。 可以在一个扩展中定义多个组件。 在".形式,也可以将这些扩展到其他Visual Studio最终用户。Visual Studio集成扩展(vsix) 可以创建VSIX使用VSIX项目在Visual Studio。
要求
Visual Studio SDK,您可以从 Visual Studio库获取。
Visual Studio可视化和建模SDK,则可以从 Visual Studio在代码库中的可视化和建模SDK获取。
创建一个建模扩展解决方案
若要定义建模扩展,您必须创建包含这些项目的解决方案:
Visual Studio 集成扩展 (VSIX) 项目。 这将生成一个充当扩展的组件安装程序的文件。
一个包含程序代码的组件所必需的类库项目。
如果需要创建一个具有几个组件的扩展,您可以在单个解决方案中开发这些组件。 只需要一个VSIX项目。
不需要代码,如自定义工具箱项和自定义UML配置文件的元素,可以直接添加到VSIX项目中,而无需使用单独的选件类库项目。 要求程序代码的组件在单独选件类库项目中更轻松地定义。 需要代码的元素包括笔势处理程序、菜单命令和验证代码。
创建菜单命令、笔势处理程序或验证的选件类库项目
在**“文件”菜单上,选择“新建”和“项目”**。
在 *** 安装的模板 ***,选择下的 *** visual C# *** 或 *** Visual Basic ***,然后选择 *** 选件类库 ***。
创建 VSIX 项目
如果创建的是带代码的组件,则先创建类库项目最为容易。 将代码添加到该项目中。
创建一个 VSIX 项目。
在 *** 解决方案资源管理器 ***,解决方案中的快捷菜单上,选择 *** 添加 ***,*** 新项目 ***。
在 ***** 安装的模板 *****下,展开 *** visual C# *** 或 *** Visual Basic ***,然后选择 *** 扩展性 ***。 在中间列中,选择 *** VSIX项目 ***。
将 VSIX 项目设置为解决方案的启动项目。
- 在解决方案资源管理器中,在VSIX项目的快捷菜单中选择 *** 设置为启动项目 ***。
打开 source.extension.vsixmanifest。 这将在清单编辑器中打开该文件。
在 *** 元数据 *** 选项,设置VSIX的名称和描述性字段。
在 *** 安装目标 *** 选项卡中,选择 新建 并将Visual Studio的最终和高质量编辑。
在 *** 属性 *** 选项,请将组件添加到Visual Studio扩展。
单击**“新建”**。
对于带代码的组件,在 *** 添加新的资产 *** 对话框的这些字段:
*** 类型 *** =
Microsoft.VisualStudio.MefComponent
源 =
在当前解决方案中的项目
项目 =
您的选件类库项目
*** 嵌入此文件夹 *** =
(空)
有关其他组件类型,请参见下一节中的链接。
开发组件
必须为每个组件(如菜单命令或笔势处理程序)定义一个单独的处理程序。 可以在同一个类库项目可以将若干处理程序。 下表总结了各种处理程序。
扩展类型 |
主题 |
每个组件的常见声明方式 |
---|---|---|
菜单命令 |
[ClassDesignerExtension] // or other diagram types [Export(typeof(ICommandExtension))] public class MyCommand : ICommandExtension {... |
|
拖放或双击 |
[ClassDesignerExtension] // or other diagram types [Export(typeof(IGestureExtension))] public class MyGesture : IGestureExtension {... |
|
验证约束 |
[Export(typeof( System.Action<ValidationContext, object>))] [ValidationMethod(ValidationCategories.Save | ValidationCategories.Menu)] public void ValidateSomething (ValidationContext context, IClassifier elementToValidate) {...} |
|
工作项链接事件处理程序 |
[Export(typeof(ILinkedWorkItemExtension))] public class MyWorkItemEventHandler : ILinkedWorkItemExtension {... |
|
UML 配置文件 |
(将定义) |
|
工具箱项 |
(将定义) |
在扩展的开发过程中运行扩展
在扩展的开发过程中运行扩展
在 Visual Studio***** 调试 ***** 菜单中,选择 *** 开始调试 ***。
此时将生成项目,并且以实验模式启动一个新的 Visual Studio 实例。
- 也可以选择 *** 开始,而不调试 ***。 这将减少启动程序所用的时间。
创建或打开在Visual Studio的实验实例的建模项目,然后创建或打开该关系图。
此时将加载并运行扩展。
如果使用了 *** 开始,而不调试 ***,但要使用调试器,请向Visual Studio主实例。 在**“调试”菜单上,单击“附加到进程”**。 在对话框中,选择Visual Studio的实验实例中,在过程名 devenv。
安装和卸载扩展
执行以下步骤独立运行您在Visual Studio计算机的主实例的扩展或在其他计算机上。
在您的计算机中,查找由扩展项目生成的 .vsix 文件。
在 *** 解决方案资源管理器 ***,请在项目中快捷菜单,然后选择 *** 打开在Windows资源管理器中的文件夹 ***。
找到文件 bin\*\您的项目.vsix
将 .vsix 文件复制到要安装扩展的目标计算机上。 该计算机可为您自己的计算机或其他计算机。
- 目标计算机上必须安装在 source.extension.vsixmanifest*** 安装目标 *** 选项指定的某个Visual Studio版本。
在目标计算机上,请通过双击以打开 .vsix 文件,如。
**“Visual Studio Extension Installer”**将会打开并安装扩展。
启动或重新启动Visual Studio。
卸载扩展
在**“工具”菜单上,单击“扩展管理器”**。
展开**“已安装的扩展”**。
选择扩展,然后单击**“卸载”**。
在极少数情况下,有错误的扩展无法加载并在错误窗口中创建报告,但不显示在扩展管理器中。 在此情况下,可以通过从以下位置删除文件来删除扩展,其中 %LocalAppData% 通常为 DriveName:\Users\UserName\AppData\Local:
%LocalAppData%\Microsoft\VisualStudio\11.0\Extensions