Solution3.GetProjectTemplate (Método)
Devuelve una ruta de acceso a la plantilla de proyecto especificada.
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: EnvDTE90
Ensamblado: EnvDTE90 (en EnvDTE90.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: StringNombre de la plantilla.
Language
Tipo: StringLenguaje 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.
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
- Plena confianza para el llamador inmediato. Un código de confianza parcial no puede utilizar este miembro. Para obtener más información, vea Utilizar bibliotecas de código que no es de plena confianza.
Vea también
Referencia
Otros recursos
Cómo: Compilar y ejecutar los ejemplos de código del modelo de objetos de automatización