Compartir a través de


Solution2.GetProjectTemplate (Método)

Devuelve una ruta de acceso a la plantilla de proyecto indicada.

Si una plantilla tiene un elemento de RequiredFrameworkVersion mayor que 4,0, debe proporcionar la versión en la llamada para que la búsqueda de la plantilla encuentra una coincidencia. Por ejemplo, en lugar de llamar a GetProjectTemplate("Extensibility\\1033\\VSIXProject.zip", "CSharp"); llamada GetProjectTemplate("Extensibility\\1033\\VSIXProject.zip|FrameworkVersion=4.5", "CSharp");.

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

Sintaxis

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

Parámetros

  • TemplateName
    Tipo: String

    Nombre de la plantilla.

  • Language
    Tipo: String

    Lenguaje utilizado para escribir la plantilla.

Valor devuelto

Tipo: String
Nombre completo de la plantilla 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 GetProjectTemplate se pueden proporcionar de varias maneras diferentes, como se muestra a continuación:

  • Pasando la cadena "CSharp" como el parámetro Language y el nombre del archivo zip como TemplateName.

    GetProjectTemplate("PocketPC2003-ClassLibrary.zip", "CSharp");
    
  • Pasando "CSharp" como el parámetro Language y una ruta de acceso parcial; "PocketPC2003\ClassLibrary.vstemplate", para especificar TemplateName de forma única.

    GetProjectTemplate("PocketPC2003\ClassLibrary.vstemplate", "CSharp");//partial file path
    
  • Pasando la cadena "CSharp" como el parámetro Language y la cadena "Pocket PC 2003 Class Library" del parámetro TemplateName. La cadena "Pocket PC 2003 Class Library" se deriva de la jerarquía de carpetas y se conoce como la cadena de la interfaz de usuario. Otros ejemplos de cadenas de la interfaz de usuario son "Console Application" y "Windows Application".

    Nota

    Las cadenas de la interfaz de usuario varían según la configuración regional.Utilizar el nombre del archivo zip es la manera más segura de pasar el parámetro TemplateName.

    GetProjectTemplate("Pocket PC 2003 Class Library", "CSharp");
    
  • Pasando la cadena "CSharp" como el parámetro Language y la cadena "PocketPC2003\Pocket PC 2003 Class Library" del parámetro TemplateName. Esto incluye la cadena de la interfaz de usuario y una ruta de acceso parcial para especificar la plantilla de forma única.

    GetProjectTemplate("PocketPC2003\Pocket PC 2003 Class Library", "CSharp");
    

También puede crear sus propias plantillas de proyecto personalizadas. 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 la ruta de acceso para las plantillas en el cuadro Ubicación de plantillas de proyecto de usuario de Visual Studio. O bien, puede aceptar las ubicaciones predeterminadas.

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 8\Common7\IDE\ProjectTemplates\Idioma

Asegúrese de utilizar nombres de archivo largos (en lugar del formato 8.3). Para obtener más información, vea Creating Project and Item Templates.

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 ejemplo siguiente se muestra cómo crear una solución y agregarle 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 Visual Basic 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
//make sure to add this reference to your project references
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{
        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

EnvDTE80 (Espacio de nombres)