Compartir a través de


Cómo: Definir e instalar una extensión de modelado

En Visual Studio Ultimate, puede definir extensiones para diagramas de modelado. De este modo, puede adaptar los diagramas y modelos a sus propias necesidades. Puede definir, por ejemplo, comandos de menú, perfiles de UML, restricciones de validación y elementos de cuadros de herramientas. Puede definir varios componentes en una única extensión. También puede distribuir estas extensiones a otros usuarios de Visual Studio Ultimate en forma de una Extensión de integración de Visual Studio (VSIX). Puede crear una VSIX utilizando un proyecto VSIX en Visual Studio.

Debe tener instalado Visual Studio SDK.

Requisitos

Crear una solución de extensión de modelado

Para definir una extensión de modelado, debe crear una solución que contenga estos proyectos:

  • Un proyecto de Extensión de integración de Visual Studio (VSIX). De este modo, se genera un archivo que actúa como instalador de los componentes de la extensión. En el cuadro de diálogo Nuevo proyecto, expanda Visual C# o Visual Basic y, a continuación, haga clic en Extensibilidad. En la columna central, haga clic en Proyecto VSIX.

  • Un proyecto de biblioteca de clases, necesario para los componentes que contienen el código del programa.

Si desea realizar una extensión que tenga diversos componentes, puede desarrollarlos en una única solución. Solo necesita un proyecto VSIX y agregar los componentes como contenido a la definición de VSIX.

Los componentes que no necesitan código, como los elementos de cuadro de herramientas personalizados y los perfiles UML personalizados, pueden agregarse directamente al proyecto VSIX sin usar proyectos independientes. Los componentes, como los comandos de menú que necesitan código del programa, se definen más fácilmente en un proyecto independiente.

Para configurar un proyecto VSIX

  1. Si está creando un componente con código, es más fácil crear primero el proyecto de biblioteca de clases. Va a agregar su código a ese proyecto.

  2. Crear un proyecto de VSIX.

    1. En el Explorador de soluciones, haga clic con el botón secundario en la solución, seleccione Agregar y, a continuación, haga clic en Nuevo proyecto.

    2. En Plantillas instaladas, expanda Visual C# o Visual Basic y, a continuación, haga clic en Extensibilidad. En la columna central, haga clic en Proyecto VSIX.

  3. Establezca el proyecto VSIX como proyecto de inicio de la solución.

    • En el Explorador de soluciones, haga clic con el botón secundario en el proyecto VSIX y, a continuación, haga clic en Establecer como proyecto de inicio.
  4. Abra source.extension.vsixmanifest. El archivo se abre en el editor de manifiestos.

  5. Establezca el nombre y los campos descriptivos de VSIX.

  6. Haga clic en Seleccionar ediciones y seleccione las ediciones de Visual Studio en las que desee que se ejecute la extensión.

  7. Agregue sus componentes a la lista Contenido.

    1. Haga clic en Agregar contenido.

    2. Para un componente con código:

      En Seleccione un tipo de contenido, seleccione MEF Component.

      En Seleccione un origen, haga clic en Proyecto y seleccione el nombre del proyecto de biblioteca de clases.

      Para otros tipos de componentes, vea los vínculos de la sección siguiente.

Desarrollar el componente

Para cada componente, por ejemplo un comando de menú o un controlador de gestos, debe definir un controlador independiente. En la siguiente tabla se resumen los diferentes tipos de controlador.

Tipo de extensión

Tema

Cómo se declara normalmente cada componente

Comando de menú

Cómo: Definir un comando de menú en un diagrama de modelado

[ClassDesignerExtension]

// or other diagram types

[Export(typeof(ICommandExtension))]

public class MyCommand : ICommandExtension

{...

Arrastrar y colocar o hacer doble clic

Cómo: Definir un controlador de colocación y doble clic en un diagrama de modelado

[ClassDesignerExtension]

// or other diagram types

[Export(typeof(IGestureExtension))]

public class MyGesture : IGestureExtension

{...

Restricción de validación

Cómo: Definir restricciones de validación para modelos UML

[Export(typeof( System.Action<ValidationContext, object>))]

[ValidationMethod(ValidationCategories.Save

| ValidationCategories.Menu)]

public void ValidateSomething

(ValidationContext context, IClassifier elementToValidate)

{...}

Controlador de eventos de vínculo de elemento de trabajo

Cómo: Definir un controlador de vínculos de elementos de trabajo

[Export(typeof(ILinkedWorkItemExtension))]

public class MyWorkItemEventHandler : ILinkedWorkItemExtension

{...

Perfil UML

Cómo: Definir un perfil para ampliar UML

No se define con código de programa. En lugar de esto, defina el tipo de componente en source.extension.vsixmanifest de este modo.

Tipo de componente = Extensión personalizada

Tipo = Microsoft.VisualStudio.UmlProfile

Elemento de cuadro de herramientas

Cómo: Definir un elemento personalizado en un cuadro de herramientas de modelado

No se define con código de programa. En lugar de esto, defina el tipo de componente en source.extension.vsixmanifest de este modo.

Tipo de componente = Extensión personalizada

Tipo = Microsoft.VisualStudio.ArchitectureTools.CustomToolboxItems

Ejecutar una extensión durante su desarrollo

Para ejecutar una extensión durante su desarrollo

  1. En el menú Depurar de Visual Studio, haga clic en Iniciar depuración.

    El proyecto se compila y se inicia una nueva instancia de Visual Studio en modo experimental.

    • Alternativamente puede hacer clic en Iniciar sin depurar. Esto reduce el tiempo que se tarda en iniciar el programa.
  2. Cree o abra un proyecto de modelado en la instancia experimental de Visual Studio y cree o abra un diagrama.

    La extensión se cargará y se ejecutará.

  3. Si utilizó Iniciar sin depurar pero desea utilizar el depurador, regrese a la instancia principal de Visual Studio. En el menú Depurar, haga clic en Asociar al proceso. En el cuadro de diálogo, seleccione la instancia experimental de Visual Studio, que tiene el nombre de programa devenv.

Para ejecutar la extensión en la instancia principal de Visual Studio, siga los pasos que se describen en Instalar y desinstalar una extensión.

Instalar y desinstalar una extensión

Puede instalar una extensión de Visual Studio en su propio equipo y en otros equipos.

Para instalar una extensión

  1. En el equipo, busque el archivo .vsix que el proyecto de extensión compiló.

    1. En el Explorador de soluciones, haga clic con el botón secundario del mouse en el proyecto y, a continuación, haga clic en Abrir carpeta en el Explorador de Windows.

    2. Busque el archivo bin\*\SuProyecto.vsix

  2. Copie el archivo .vsix en el equipo de destino en el que desea instalar la extensión. Puede tratarse de su propio equipo o de otro.

    • El equipo de destino debe tener una de las ediciones de Visual Studio que especificó en source.extension.vsixmanifest.
  3. En el equipo de destino, haga doble clic en el archivo .vsix.

    El Instalador de extensiones de Visual Studio se abre e instala la extensión.

  4. Inicie o reinicie Visual Studio.

Para desinstalar una extensión

  1. En el menú Herramientas, haga clic en Administrador de extensiones.

  2. Expanda Extensiones instaladas.

  3. Seleccione la extensión y, a continuación, haga clic Desinstalar.

En contadas ocasiones, una extensión defectuosa no se carga y crea un informe en la ventana de error, aunque no aparece en el Administrador de extensiones. En ese caso, puede quitar la extensión eliminando el archivo de la siguiente ubicación, donde % LocalAppData% es normalmente el DriveName: \Users\UserName\AppData\Local:

%LocalAppData%\Microsoft\VisualStudio\10.0\Extensions

Vea también

Conceptos

Cómo: Definir un perfil para ampliar UML

Otros recursos

Cómo: Definir un elemento personalizado en un cuadro de herramientas de modelado

Cómo: Definir restricciones de validación para modelos UML

Cómo: Definir un comando de menú en un diagrama de modelado