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

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

您应已安装 Visual Studio SDK。

要求

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

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

  • Visual Studio 集成扩展 (VSIX) 项目。 这将生成一个充当扩展的组件安装程序的文件。 在**“新建项目”对话框中,展开“Visual C#”“Visual Basic”,然后单击“扩展性”。 在中间列中,单击“VSIX 项目”**。

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

如果需要创建一个具有几个组件的扩展,您可以在单个解决方案中开发这些组件。 只需要一个 VSIX 项目,并将这些组件作为内容添加到 VSIX 定义中。

可以直接将不需要代码的组件(如自定义工具箱项和自定义 UML 配置文件)添加到 VSIX 项目中,而无需使用单独的项目。 可以在单独的项目中更轻松地定义诸如需要程序代码的菜单命令这样的组件。

设置 VSIX 项目

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

  2. 创建一个 VSIX 项目。

    1. 在**“解决方案资源管理器”中,右击该解决方案,指向“添加”,然后单击“新建项目”**。

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

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

    • 在解决方案资源管理器中,右击该 VSIX 项目,然后单击**“设为启动项目”**。
  4. 打开 source.extension.vsixmanifest。 这将在清单编辑器中打开该文件。

  5. 设置 VSIX 的名称字段和描述性字段。

  6. 单击**“选择版本”**,并选择要运行扩展的 Visual Studio 版本。

  7. 将组件添加到**“内容”**列表中。

    1. 单击**“添加内容”**。

    2. 对于带代码的组件:

      在**“选择内容类型”处,选择“MEF 组件”**。

      在**“选择源”处,单击“项目”**,并选择类库项目的名称。

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

开发组件

必须为每个组件(如菜单命令或笔势处理程序)定义一个单独的处理程序。 下表总结了各种处理程序。

扩展类型

主题

每个组件的常见声明方式

菜单命令

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

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

未与程序代码一起定义。 而是在 source.extension.vsixmanifest 中定义组件类型,如下所示。

组件类型 = 自定义扩展

类型 = Microsoft.VisualStudio.UmlProfile

工具箱项

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

未与程序代码一起定义。 而是在 source.extension.vsixmanifest 中定义组件类型,如下所示。

组件类型 = 自定义扩展

类型 = Microsoft.VisualStudio.ArchitectureTools.CustomToolboxItems

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

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

  1. 在 Visual Studio 的**“调试”菜单中,单击“启动调试”**。

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

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

    此时将加载并运行扩展。

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

若要在 Visual Studio 的主实例中运行扩展,请按照安装和卸载扩展中的步骤操作。

安装和卸载扩展

既可以在您自己的计算机上也可以在其他计算机上安装 Visual Studio 扩展。

安装扩展

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

    1. 在**“解决方案资源管理器”中,右击项目,然后单击“在 Windows 资源管理器中打开文件夹”**。

    2. 找到文件 bin\*\您的项目.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\10.0\Extensions

请参见

概念

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

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

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

其他资源

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