Compartir a través de


Solution3.GetProjectItemTemplates (Método)

Devuelve una colección de plantillas de elementos de proyecto para el proyecto especificado.

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

Sintaxis

'Declaración
Function GetProjectItemTemplates ( _
    Language As String, _
    CustomDataSignature As String _
) As Templates
Templates GetProjectItemTemplates(
    string Language,
    string CustomDataSignature
)
Templates^ GetProjectItemTemplates(
    String^ Language, 
    String^ CustomDataSignature
)
abstract GetProjectItemTemplates : 
        Language:string * 
        CustomDataSignature:string -> Templates 
function GetProjectItemTemplates(
    Language : String, 
    CustomDataSignature : String
) : Templates

Parámetros

  • Language
    Tipo: System.String
    El lenguaje utilizado para escribir la plantilla de elemento de proyecto.
  • CustomDataSignature
    Tipo: System.String
    La firma para los metadatos asociados a la plantilla de elemento de proyecto.

Valor devuelto

Tipo: EnvDTE90.Templates
Una colección de plantillas que contiene los nombres de todas las plantillas de elementos de proyecto.

Comentarios

Las plantillas de proyecto se almacenan como archivos .zip. Este método pide el proyecto por nombre y lenguaje y devuelve la ruta de acceso a la plantilla.

Los parámetros de GetProjectItemTemplate se pueden proporcionar de varias maneras diferentes, como se muestra a continuación:

  • Pasar en el GUID para un proyecto virtual de Visual Basic para un Smart Device como el parámetro Language y el nombre del archivo zip como TemplateName.

    GetProjectItemTemplate("NETCFv2-Class.zip", "{3114F5B0-E435-4bc5-A03D-168E20D9BF83}");
    
  • Pasar en el GUID para un proyecto virtual de Visual Basic para Smart Device como el parámetro Language y la cadena "Class" como TemplateName. La cadena "Class" se deriva de la jerarquía de carpetas y se conoce como la cadena de la interfaz de usuario. Otras cadenas de la interfaz de usuario son "HTML Page" y "Splash Screen". Las cadenas de la interfaz de usuario son dependientes de la configuración regional. Utilizar el nombre del archivo zip es la manera más segura de pasar el parámetro TemplateName.

    GetProjectItemTemplate("Class", "{3114F5B0-E435-4bc5-A03D-168E20D9BF83}");
    
  • Pasando la cadena "VisualBasic" como el parámetro Language y el nombre del archivo zip del parámetro TemplateName. Esto funciona porque NETCFv2-Class.zip es único en Smart Devices.

    GetProjectItemTemplate("NETCFv2-Class.zip", "VisualBasic/SmartDevice-NETCFv2");
    

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

Las plantillas personalizadas requieren nombres de archivo únicos que no entren en conflicto con los nombres de archivo definidos en:

<unidad>:\Archivos de programa\Microsoft Visual Studio 9\Common7\IDE\ItemTemplates\Idioma.

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

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.

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 C# Console
    ' project to it.
    Try
        Dim soln As Solution3 = CType(DTE.Solution, Solution3)
        Dim csTemplatePath As String
        ' This path must exist on your computer.
        ' Replace <file path> below with an actual path.
        Dim csPrjPath As String = "<file path>"
        MsgBox("starting")
        ' Get the project template path for a C# console project.
        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)
        MsgBox("done")
    Catch ex As System.Exception
        MsgBox(ex.ToString)
    End Try
End Sub
using System.Windows.Forms;
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{
        Solution3 soln = (Solution3)_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

Solution3 Interfaz

EnvDTE90 (Espacio de nombres)

Otros recursos

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