如何:定义和安装建模扩展

在 Visual Studio 旗舰版中,可以定义扩展到建模图。 通过这种方式,您可以采用关系图和模型来满足您自己的需要。 例如,您可以定义菜单命令、UML 配置文件、验证约束和工具箱项。 可以在一个扩展中定义多个组件。 您还可以将这些扩展以Visual Studio Integration Extension (VSIX)的形式分配给其他Visual Studio旗舰版用户。 在 Visual Studio中可以使用 VSIX 项目创建 VSIX 。

要求

创建一个建模扩展解决方案

若要定义建模扩展,您必须创建包含这些项目的解决方案:

  • Visual Studio 集成扩展 (VSIX) 项目。 这将生成一个充当扩展的组件安装程序的文件。

  • 一个包含程序代码的组件所必需的类库项目。

如果需要创建一个具有几个组件的扩展,您可以在单个解决方案中开发这些组件。 只需要一个 VSIX 项目。

可以直接将不需要代码的组件(如自定义工具箱项和自定义 UML 配置文件)添加到 VSIX 项目中,而无需使用单独的类库。 可以在单独的类库项目中更轻松地定义组件。 需要代码的元素包括笔势处理程序、菜单命令和验证代码。

创建菜单命令、笔势处理程序或验证的选件类库项目

  1. 在**“文件”菜单上,选择“新建”“项目”**。

  2. 在**“已安装的模板”下,选择Visual C#** 或Visual Basic, 然后选择 类库

创建 VSIX 项目

  1. 如果创建的是带代码的组件,则先创建类库项目最为容易。 将代码添加到该项目中。

  2. 创建一个 VSIX 项目。

    1. 在 解决方案资源管理器的快捷菜单上,选择 添加,新建项目。

    2. 在**“已安装的模板”下,展开“Visual C#”“Visual Basic”,然后选择“扩展性”。 在中间列中,选择“VSIX 项目”**。

  3. 将 VSIX 项目设置为解决方案的启动项目。

    • 在“解决方案资源管理器”中,从VSIX项目的快捷菜单上选择设为启动项目
  4. 打开 source.extension.vsixmanifest。 这将在清单编辑器中打开该文件。

  5. MetaData 选项,设置 VSIX 的名称和描述性字段。

  6. 安装目标 选项卡中,选择 新建 并选择Visual Studio旗舰或高级版。

  7. 资产 选项,请将组件添加到 Visual Studio 扩展。

    1. 单击**“新建”**。

    2. 对于带代码的组件,在 添加新资产 对话框设置这些字段:

      类型 =

      Microsoft.VisualStudio.MefComponent

      =

      在当前解决方案中的项目

      项目 =

      Your class library project

      在该文件夹中内嵌 =

      (empty)

      有关其他组件类型,请参见下一节中的链接。

开发组件

必须为每个组件(如菜单命令或笔势处理程序)定义一个单独的处理程序。 可以在同一个类库项目可以将若干处理程序。 下表总结了各种处理程序。

扩展类型

主题

每个组件的常见声明方式

菜单命令

如何:在建模图上定义菜单命令

[ClassDesignerExtension]

// or other diagram types

[Export(typeof(ICommandExtension))]

public class MyCommand : ICommandExtension

{...

拖放或双击

如何:在建模图上定义笔势处理程序

[ClassDesignerExtension]

// or other diagram types

[Export(typeof(IGestureExtension))]

public class MyGesture : IGestureExtension

{...

验证约束

如何:为 UML 模型定义验证约束

[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 配置文件

如何:定义用于扩展 UML 的配置文件

(将定义)

工具箱项

如何:定义自定义建模工具箱项

(将定义)

在扩展的开发过程中运行扩展

在扩展的开发过程中运行扩展

  1. 从Visual Studio 调试 菜单中选择**“启动调试”**。

    此时将生成项目,并且以实验模式启动一个新的 Visual Studio 实例。

    • 或者,可以选择**“开始执行(不调试)”**。 这将减少启动程序所用的时间。
  2. 在Visual Studio的实验实例中创建或打开一个建模项目,然后创建或打开一个关系图。

    此时将加载并运行扩展。

  3. 如果您使用了**“开始执行(不调试)”,但您需要使用调试器,请返回Visual Studio的主实例。 在“调试”菜单上,单击“附加到进程”**。 在对话框中,选择其程序名为 devenv 的Visual Studio实验实例。

安装和卸载扩展

执行以下步骤来独立运行您在 Visual Studio 计算机的主实例的扩展或在其他计算机上。

  1. 在您的计算机中,查找由扩展项目生成的 .vsix 文件。

    1. “解决方案资源管理器”中,在项目的快捷菜单,然后选择“在Windows资源管理器中打开文件夹”

    2. 查找文件 bin\*\YourProject.vsix

  2. .vsix 文件复制到要安装扩展的目标计算机上。 该计算机可为您自己的计算机或其他计算机。

    • 目标计算机上必须安装在 source.extension.vsixmanifest安装目标 选项指定的某个 Visual Studio 版本。
  3. 在目标计算机上,打开 .vsix 文件,如,通过双击它。

    **“Visual Studio Extension Installer”**将会打开并安装扩展。

  4. 启动或重新启动 Visual Studio。

卸载扩展

  1. 在**“工具”菜单上,单击“扩展管理器”**。

  2. 展开**“已安装的扩展”**。

  3. 选择扩展,然后单击**“卸载”**。

在极少数情况下,有错误的扩展无法加载并在错误窗口中创建报告,但不显示在扩展管理器中。 在此情况下,可以通过从以下位置删除文件来删除扩展,其中%LocalAppData% 通常为DriveName:\Users\UserName\AppData\Local:

%LocalAppData%\Microsoft\VisualStudio\12.0\Extensions

请参见

概念

如何:定义用于扩展 UML 的配置文件

如何:定义自定义建模工具箱项

如何:为 UML 模型定义验证约束

如何:在建模图上定义菜单命令