Compartir a través de


Solution2.AddFromTemplate (Método) (String, String, String, Boolean)

Copia un archivo de proyecto existente y todos los elementos o subdirectorios que contenga a la ubicación especificada, y lo agrega a la solución.

Espacio de nombres:  EnvDTE80
Ensamblado:  EnvDTE80 (en EnvDTE80.dll)

Sintaxis

'Declaración
Function AddFromTemplate ( _
    FileName As String, _
    Destination As String, _
    ProjectName As String, _
    Exclusive As Boolean _
) As Project
Project AddFromTemplate(
    string FileName,
    string Destination,
    string ProjectName,
    bool Exclusive
)
Project^ AddFromTemplate(
    [InAttribute] String^ FileName, 
    [InAttribute] String^ Destination, 
    [InAttribute] String^ ProjectName, 
    [InAttribute] bool Exclusive
)
abstract AddFromTemplate : 
        FileName:string * 
        Destination:string * 
        ProjectName:string * 
        Exclusive:bool -> Project 
function AddFromTemplate(
    FileName : String, 
    Destination : String, 
    ProjectName : String, 
    Exclusive : boolean
) : Project

Parámetros

  • FileName
    Tipo: System.String
    Obligatorio.Ruta de acceso completa y nombre de archivo con la extensión del archivo de proyecto de plantilla.
  • Destination
    Tipo: System.String
    Obligatorio.Ruta de acceso completa al directorio en el que se va a copiar el contenido de FileName.
  • ProjectName
    Tipo: System.String
    Obligatorio.Nombre del archivo de proyecto en el directorio de destino.Debe incluir la extensión.El nombre mostrado se deriva de ProjectName.
  • Exclusive
    Tipo: System.Boolean
    Opcional.Indica si el proyecto se carga en la solución actual o en su propia solución. true si se cierra la solución actual y el proyecto se agrega a una solución nueva; false si el proyecto se agrega a la solución abierta.

Valor devuelto

Tipo: EnvDTE.Project
Un objeto Project.

Implementaciones

_Solution.AddFromTemplate(String, String, String, Boolean)

Comentarios

El nombre del proyecto mostrado en Explorador de soluciones es ProjectName sin la extensión de archivo. AddFromTemplate da un error si el nombre de archivo del proyecto nuevo ya existe en el destino.

Nota

Para proyectos de Visual Basic y Visual C#: El objeto Project devuelto tiene un valor de Nothing o nullreferencia null (Nothing en Visual Basic). Puede buscar el objeto Project creado recorriendo en iteración la colección DTE.Solution.Projects utilizando el parámetro ProjectName para identificar el proyecto recientemente creado.

Ejemplos

Para obtener información sobre cómo ejecutar este código de complemento, vea Cómo: Compilar y ejecutar los ejemplos de código del modelo de objetos de automatización.

En el siguiente ejemplo se crea una solución y se le agrega un proyecto aplicación de consola.

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)
    SolutionExample(_applicationObject)
End Sub

Sub SolutionExample(ByVal dte As DTE2)
    ' This function creates a solution and adds a Visual Basic Console
    ' project to it.
    Try
        Dim soln As Solution2 = CType(DTE.Solution, Solution2)
        Dim vbTemplatePath As String
        ' This path must exist on your computer.
        ' Replace <file path> below with an actual path.
        Dim vbPrjPath As String = "<file path>"
        MsgBox("starting")
        ' Get the project template path for a Visual Basic console project.
        vbTemplatePath = soln.GetProjectTemplate _
        ("ConsoleApplication.zip", "VisualBasic")
        ' Create a new C# Console project using 
        ' the template obtained above.
        soln.AddFromTemplate(vbTemplatePath, vbPrjPath, _
        "New Visual Basic Console Project", False)
        MsgBox("done")
    Catch ex As System.Exception
        MsgBox(ex.ToString)
    End Try
End Sub
public void OnConnection(object application,
 Extensibility.ext_ConnectMode connectMode, object addInInst,
 ref System.Array custom)
{
    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;
    // Pass the applicationObject member variable to the code example.
    SolutionExample((DTE2)_applicationObject);
}

public void SolutionExample(DTE2 dte)
{
    // This function creates a solution and adds a Visual C# Console
    // project to it.
    try{
        Solution2 soln = (Solution2)_applicationObject.Solution;
        String csTemplatePath;
        // The file path must exist on your computer.
        // Replace <file path> below with an actual path.
        String csPrjPath = "<file path>";
    "<file path>MessageBox.Show("Starting...");
"<file path>"<file path>csTemplatePath = 
soln.GetProjectTemplate("ConsoleApplication.zip", "CSharp");
        // Create a new C# Console project using the template obtained 
        // above.
        soln.AddFromTemplate(csTemplatePath, csPrjPath,
 "New CSharp Console Project", false);
        MessageBox.Show("Done!");
    }
    catch(SystemException ex)
    {
        MessageBox.Show("ERROR: " + ex);
    }
}

Seguridad de .NET Framework

Vea también

Referencia

Solution2 Interfaz

AddFromTemplate (Sobrecarga)

EnvDTE80 (Espacio de nombres)