Compartir a través de


Cómo: Crear proyectos mediante programación

Actualización: noviembre 2007

Para crear proyectos, llame primero a GetProjectTemplate y pase a continuación las rutas de acceso de las plantillas devueltas a AddFromTemplate.

Las plantillas de proyecto tienen una extensión .vstemplate y se almacenan en archivos .zip. Para obtener la ruta de acceso al archivo .vstemplate (dentro del archivo .zip), utilice GetProjectTemplate, que pasará a continuación a AddFromTemplate para crear el proyecto (así como una solución, si no hay una ya abierta). Puede realizar esta operación tantas veces como necesite y cada proyecto se agregará a la solución actualmente abierta.

Las plantillas de proyecto para todos los lenguajes se pueden encontrar en <drive>:\Archivos de programa\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates \ Language.

También puede crear sus propias plantillas de proyecto personalizadas. Para especificar el directorio en el que almacenará las plantillas, haga clic en Opciones en el menú Herramientas. En el panel izquierdo del cuadro de diálogo Opciones, haga clic en Proyectos y soluciones. Escriba la ruta de acceso para las plantillas en el cuadro Ubicación de plantillas de proyecto de usuario de Visual Studio. También puede aceptar la ubicación predeterminada.

Las plantillas de proyecto personalizadas requieren nombres de archivo únicos que no estén en conflicto con los nombres de archivo definidos en: <drive>:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates\Language.

Asegúrese de utilizar nombres largos de archivo (en lugar de 8.3). Para obtener más información, vea Crear plantillas de proyectos y de elementos.

Nota:

Los cuadros de diálogo y comandos de menú que se ven pueden diferir de los descritos en la Ayuda, en función de la configuración activa o la edición. Estos procedimientos se han desarrollado con la Configuración de desarrollo general activa. Para cambiar la configuración, elija la opción Importar y Exportarconfiguraciones en el menú Herramientas. Para obtener más información, vea Valores de configuración de Visual Studio.

Crear un proyecto nuevo

Para crear un proyecto mediante programación

  1. Inicie Visual Studio y cree un nuevo proyecto de complemento de Visual Studio.

  2. Agregue el código siguiente a la clase Connect del complemento.

  3. Ejecute el proyecto de complemento y actívelo en el Administrador de complementos.

    Para ello, haga clic en Administrador de complementos en el menú Herramientas y, a continuación, active la casilla junto al complemento.

Ejemplo

El ejemplo siguiente utiliza GetProjectTemplate y AddFromTemplate para crear dos nuevos proyectos de consola, uno Visual Basic y el otro Visual C#, en una solución.

Public Sub OnConnection(ByVal application As Object, ByVal _
  connectMode As ext_ConnectMode, ByVal addInInst As Object, _
  ByRef custom As Array) Implements IDTExtensibility2.OnConnection
    _applicationObject = CType(application, DTE2)
    _addInInstance = CType(addInInst, AddIn)
    createProjectsFromTemplates(_applicationObject)
End Sub

Sub createProjectsFromTemplates(ByVal dte As DTE2)
    Try
        ' Create a solution with two projects in it, based on project 
        ' templates.
        Dim soln As Solution2 = CType(DTE.Solution, _
        Solution2)
        Dim csTemplatePath As String
        Dim vbTemplatePath As String
        Dim csPrjPath As String = _
        "C:\UserFiles\kempb\addins\MyCSProject"
        Dim vbPrjPath As String = _
        "C:\UserFiles\kempb\addins\MyVBProject"

        ' Get the project template path for a C# console project.
        ' Console Application is the template name that appears in the 
        ' right pane, "CSharp" is the Language(vstemplate) as seen in 
        ' the registry.
        csTemplatePath = soln.GetProjectTemplate _
        ("ConsoleApplication.zip", "CSharp")
        MsgBox("C# template path: " & csTemplatePath)
        ' Get the project template path for a Visual Basic
        ' console project.
        ' "vbproj: is the DefaultProjectExtension as seen in the 
        ' registry.
        vbTemplatePath = soln.GetProjectTemplate _
        ("ConsoleApplication.zip", "vbproj")
        MsgBox("Visual Basic template path: " & vbTemplatePath)
        ' Create a new C# console project using the template obtained 
        ' above.
        soln.AddFromTemplate(csTemplatePath, csPrjPath, _
          "New CSharp Console Project", False)
        ' Create a new Visual Basic console project using the template
        ' obtained above.
        soln.AddFromTemplate(vbTemplatePath, vbPrjPath, _
          "New Visual Basic Console Project", False)
    Catch ex As System.Exception
        MsgBox("ERROR: " & ex.ToString)
    End Try
End Sub
public void OnConnection(object application, ext_ConnectMode 
  connectMode, object addInInst, ref Array custom)
{
    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;
    createProjectsFromTemplates(_applicationObject);
}

public void createProjectsFromTemplates(DTE2 dte)
{
    try
    {
        // Create a solution with two projects in it, based on project 
        // templates.
        Solution2 soln = (Solution2)dte.Solution;
        string csTemplatePath;
        string vbTemplatePath;
        string csPrjPath = "C:\\UserFiles\\kempb\\addins\\MyCSProject";
        string vbPrjPath = "C:\\UserFiles\\kempb\\addins\\MyVBProject";
        // Get the project template path for a C# console project.
        // Console Application is the template name that appears in 
        // the right pane. "CSharp" is the Language(vstemplate) as seen 
        // in the registry.
        csTemplatePath = soln.GetProjectTemplate("ConsoleApplication.zip", 
          "CSharp");
        System.Windows.Forms.MessageBox.Show("C# template path: " + 
          csTemplatePath);
        // Get the project template path for a Visual Basic console
        // project.
        // "vbproj: is the DefaultProjectExtension as seen in the 
        // registry.
        vbTemplatePath = soln.GetProjectTemplate("ConsoleApplication.zip", 
          "vbproj");
        System.Windows.Forms.MessageBox.Show("Visual Basic template path: " + 
          vbTemplatePath);
        // Create a new C# console project using the template obtained 
        // above.
        soln.AddFromTemplate(csTemplatePath, csPrjPath, "New CSharp 
          Console Project", false);
        // Create a new Visual Basic console project using the template 
        // obtained above.
        soln.AddFromTemplate(vbTemplatePath, vbPrjPath, "New VB Console 
          Project", false);
    }
    catch (System.Exception ex)
    {
        System.Windows.Forms.MessageBox.Show("ERROR: " + ex.Message);
    }
}

Vea también

Tareas

Cómo: Compilar y ejecutar los ejemplos de código del modelo de objetos de automatización

Cómo: Crear elementos de proyecto mediante programación

Conceptos

Manipular proyectos de Visual Basic y Visual C#

Manipular proyectos de Visual C++

Otros recursos

Controlar la solución y sus proyectos