Tutorial: Crear un asistente

En Visual Studio 2013, los complementos están desusados. Se recomienda actualizar los complementos a las extensiones de VSPackage. Para obtener más información sobre cómo actualizar, vea Preguntas más frecuentes: Convertir complementos en extensiones de VSPackage.

Los asistentes, como por ejemplo el Asistente para complementos, son programas que conducen a un usuario a través de una serie de acciones con el propósito de realizar una tarea compleja, repetitiva o difícil. Por ejemplo, Windows utiliza asistentes para conectarse a recursos de red, impresoras, etc.

En Visual Studio, los asistentes generalmente formulan una serie de preguntas que solicitan acciones del usuario, y usan los resultados para generar código. Sin embargo, estos no siempre muestran una interfaz de usuario (IU). Se pueden programar para generar código en segundo plano.

Existen tres tipos diferentes de asistentes.

  • Asistentes para nuevo proyecto: como lo sugiere el nombre, estos asistentes se utilizan para generar nuevo código para un tipo de proyecto en particular, lo que proporciona al usuario un punto de inicio a partir del cual puede agregar código propio. Este es el tipo de asistente utilizado con más frecuencia.

  • Asistentes para agregar nuevo elemento: estos asistentes se utilizan para agregar a un proyecto nuevos elementos, por ejemplo, formularios Web Forms, archivos de texto, páginas HTML, páginas XML, etc.

  • Asistentes personalizados: estos asistentes no se llaman desde un cuadro de diálogo. En lugar de ello, se llaman directamente desde complementos, macros u otros tipos de código. Estos asistentes pueden mostrar o no una interfaz de usuario. En cualquier caso, generan código. Este tipo de asistente se utiliza con menos frecuencia.

Independientemente del tipo de asistente, todos ellos tienen características comunes.

  • Todos son objetos .NET que implementan la interfaz IDTWizard y tienen un método asociado, Execute, que contiene el código que desea que ejecute el asistente.

  • Todos usan un archivo .vsz para mostrarse en Visual Studio.

  • Todos ellos generan código o realizan alguna otra tarea.

Puede personalizar el aspecto de los elementos de los asistentes que crea. Frecuentemente, los asistentes están compuestos de una o más ventanas, o páginas. Las páginas pueden contener una imagen descriptiva, por ejemplo en la parte superior o izquierda de la página, una descripción de etiqueta, instrucciones y un área en la que pueden incluirse controles de navegación como Siguiente y Anterior.

El proceso para crear asistentes en Visual C++ se diferencia un poco del proceso para crear asistentes estándar de Visual Studio. Para obtener más información sobre cómo crear asistentes para Visual C++, vea Diseñar un asistente y Crear un asistente personalizado.

NotaNota

Es posible que su equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio en las siguientes instrucciones.La edición de Visual Studio que tenga y la configuración que esté usando determinan estos elementos.Para obtener más información, vea Personalizar la configuración de desarrollo en Visual Studio.

Ejemplo de un asistente básico

Asistente para complementos de Visual Studio

En esta imagen se muestra un panel del Asistente para complementos, un tipo de asistente para nuevo proyecto que le guía por una serie de pasos para crear un complemento. Puede personalizar el aspecto de los asistentes, pero el Asistente para complementos es un buen ejemplo del estilo de un asistente estándar. Los asistentes finalizados se convierten en plantillas que están disponibles en los cuadros de diálogo Nuevo proyecto o Agregar nuevo elemento.

A continuación se muestra cómo puede crear un asistente básico y, opcionalmente, asignarle un icono personalizado.

Para crear un asistente básico en Visual Basic y Visual C#

  1. Ejecute Visual Studio como administrador. Para registrar el asistente, es necesario actualizar el Registro, por lo que necesita este privilegio.

  2. Cree un nuevo proyecto de bibliotecas de clases denominado MyNewWizard.

  3. Agregue referencias a EnvDTE y EnvDTE80 al proyecto.

    Para ello, haga clic con el botón secundario en el proyecto y, a continuación, haga clic en Agregar, Referencia. En la pestaña .NET del cuadro de diálogo Referencia, haga clic en EnvDTE y EnvDTE80 y, a continuación, en Aceptar.

En el módulo de clase, incluya referencias a EnvDTE y EnvDTE80 e implemente la interfaz IDTWizard. En este ejemplo de Visual C#, también debe agregar una referencia a System.Windows.Forms y System.Runtime.InteropServices.

Imports EnvDTE 
Imports EnvDTE80
Public Class Class1
    Implements IDTWizard
using System;
using System.Collections.Generic;
using System.Text;
using EnvDTE; 
using EnvDTE80; 
using System. Windows.Forms;

using System.Runtime.InteropServices;

namespace MyNewWizard
{

[ComVisible(true)]

[Guid("20184B81-7C38-4E02-A1E3-8D564EEC2D25"),

ProgId("MyNewWizard.Class1")]

    public class Class1 : IDTWizard
    {
    }
}

Cuando agregue la instrucción Implements a Visual Basic, sitúe el cursor al final de la línea y presione Intro para crear automáticamente un procedimiento del método Execute. Sin embargo, para Visual C#, debe agregar manualmente el procedimiento Execute:

public class Class1 : IDTWizard
    {
    public void Execute(object Application,  
        int hwndOwner, ref object[] contextParams,  
        ref object[] customParams,  
        ref EnvDTE.wizardResult retval)
  1. Agregue el código que desea que ejecute el asistente al procedimiento Execute. Para este ejemplo, agregaremos un sencillo cuadro de mensaje.

    Debe tener lo siguiente:

    Imports EnvDTE
    Imports EnvDTE80
    
    Public Class Class1
        Implements IDTWizard
    
        Public Sub Execute(ByVal Application As Object, ByVal _
        hwndOwner As Integer, ByRef ContextParams() As Object, ByRef _
        CustomParams() As Object, ByRef retval As EnvDTE.wizardResult) _
        Implements EnvDTE.IDTWizard.Execute
            MsgBox("The wizard is now running.")
        End Sub
    End Class 
    
    using System.Text;
    using EnvDTE;
    using EnvDTE80;
    using System.Windows.Forms;
    using System.Runtime.InteropServices;
    
    namespace MyNewWizardCS
    {
        public class Class1 : IDTWizard
        {
    
        public void Execute(object Application, 
            int hwndOwner, ref object[] contextParams, 
            ref object[] customParams, 
            ref EnvDTE.wizardResult retval)
        {
            MessageBox.Show("The wizard is now running.");
        }
    }
    
    }
    

    Se llama al procedimiento Execute cuando se inicia el asistente.

  2. En el Explorador de soluciones, haga clic con el botón secundario en el proyecto y, a continuación, haga clic en Propiedades para abrir la página Propiedades del proyecto; a continuación, haga clic en la pestaña Compilar y active la casilla Registrar para interoperabilidad COM en la parte inferior de la página.

  3. En el archivo AssemblyInfo.cs, busque el atributo ComVisible y establézcalo en true.

  4. Compile el proyecto para crear el archivo .dll de la biblioteca de clases, haciendo clic en Compilar solución en el menú Compilar.

  5. Cree un archivo de texto .vsz para el asistente llamado MyNewWizard.vsz.

    Para ello, realice una copia de un archivo .vsz existente, por ejemplo, cualquiera de los que se encuentran en <Visual Studio Install Directory>\VC#\CSharpProjectItems\Windows Forms y cámbiele el nombre por "MiNuevoAsistente.vsz".

    Un archivo .vsz es un archivo de texto que permite que Visual Studio reconozca el asistente y lo muestre en los cuadros de diálogo Nuevo proyecto o Agregar nuevo elemento. El parámetro Wizard del asistente se debe establecer en el ProgID (Project.Classname) del proyecto o en GUID. Para obtener más información, vea Configurar archivos .Vsz para iniciar asistentes.

    NotaNota

    Opcionalmente, también puede crear un archivo VSDir para el asistente.Este contiene la información que se muestra como una descripción del asistente en los cuadros de diálogo Nuevo proyecto o Nuevo archivo.También permite especificar un icono y organizar su ubicación en la lista.Para obtener más información, vea Agregar asistentes a los cuadros de diálogo Agregar elemento y Nuevo proyecto mediante el uso de archivos .Vsdir.

  6. Reemplace el contenido de MyNewWizard.vsz con lo siguiente:

    VSWizard 7.0
    Wizard=MyNewWizard.Class1
    Param=First Item
    Param=Second Item
    
  7. Guarde el nuevo archivo .vsz en el directorio donde desee que aparezca el asistente.

    En este ejemplo, deseamos que el asistente aparezca en el cuadro de diálogo Agregar nuevo elemento de los proyectos de Visual Basic; para ello, es preciso guardar el archivo .vsz en el siguiente directorio: <Visual Studio Install Directory>\VB\VBProjectItems.

  8. Salga de Visual Studio y, a continuación, reinícielo.

    Esto obliga a Visual Studio a leer el nuevo archivo .vsz.

  9. Cree un nuevo proyecto de Visual Basic; por ejemplo, un proyecto de aplicación para Windows.

  10. Haga clic con el botón secundario en el proyecto, elija Agregar y haga clic en Nuevo elemento.

    El nuevo asistente (MyNewWizard) aparecerá en el cuadro de diálogo Agregar nuevos elementos.

  11. Haga clic en el asistente y, a continuación, haga clic en el botón Agregar.

    Aparece el mensaje "El asistente se está ejecutando".

Para mostrar un icono personalizado para el nuevo asistente

  • Coloque un archivo de icono con el mismo nombre de archivo base que el archivo .dll, pero con extensión .ico en el mismo directorio que el archivo del asistente.

    Por ejemplo, si el asistente se denomina MyNewWizard.dll, asigne el nombre MyNewWizard.ico al archivo .ico.

    O bien

  • Si creó un archivo VSDir, especifique una ruta de acceso al archivo de icono (.ico).

Vea también

Tareas

Cómo: Crear un complemento

Referencia

IDTWizard

Conceptos

Gráfico del modelo de objetos de automatización

Agregar asistentes a los cuadros de diálogo Agregar elemento y Nuevo proyecto mediante el uso de archivos .Vsdir

Configurar archivos .Vsz para iniciar asistentes

Otros recursos

Crear complementos y asistentes

Modificadores y comandos de Visual Studio