Compartilhar via


Método Solution2.GetProjectTemplate

Retorna um caminho para o modelo indicado do projeto.

Se um modelo tem um elemento de RequiredFrameworkVersion mais alto de 4,0, você deve fornecer a versão na chamada de modo que a pesquisa para o modelo encontra uma correspondência. Por exemplo, em vez de chamar GetProjectTemplate("Extensibility\\1033\\VSIXProject.zip", "CSharp"); chamada GetProjectTemplate("Extensibility\\1033\\VSIXProject.zip|FrameworkVersion=4.5", "CSharp");.

Namespace:  EnvDTE80
Assembly:  EnvDTE80 (em EnvDTE80.dll)

Sintaxe

'Declaração
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

    O nome do modelo.

  • Language
    Tipo: String

    O idioma usado para gravar o modelo.

Valor de retorno

Tipo: String
O nome completo do modelo de projeto.

Comentários

Modelos de projeto são armazenados como arquivos zip. Este método solicita o projeto por nome e idioma e retorna o caminho para o modelo.

Os parâmetros de GetProjectTemplate podem ser fornecidos em um número de diferentes maneiras como mostrado abaixo:

  • Passar em “CSharp” como o parâmetro de Language , e o nome de arquivo ZIP como TemplateName.

    GetProjectTemplate("PocketPC2003-ClassLibrary.zip", "CSharp");
    
  • Passar em “CSharp” como o parâmetro de Language , e um caminho de arquivo; parcial“PocketPC2003 \ ClassLibrary.vstemplate”, para especificar exclusivamente TemplateName.

    GetProjectTemplate("PocketPC2003\ClassLibrary.vstemplate", "CSharp");//partial file path
    
  • Passe a cadeia de caracteres “CSharp” como o parâmetro de Language , e na cadeia de caracteres de “biblioteca de classe Pocket PC 2003” para parâmetro de TemplateName . A cadeia de caracteres de “biblioteca de classe Pocket PC 2003” é derivada da hierarquia de pastas e conhecida como a cadeia de caracteres de interface do usuário. Outros exemplos de cadeias de caracteres de interface do usuário são “aplicativo de console” e “aplicativo do Windows”.

    Dica

    As cadeias de caracteres de interface do usuário variam de acordo com a localidade.O uso do nome do arquivo zip é a maneira mais segura de passar o parâmetro TemplateName.

    GetProjectTemplate("Pocket PC 2003 Class Library", "CSharp");
    
  • Passe a cadeia de caracteres “CSharp” como o parâmetro de Language e na cadeia de caracteres de “biblioteca de classe PocketPC2003 \ Pocket PC 2003” para parâmetro de TemplateName . Isso inclui a cadeia de caracteres de interface do usuário e um caminho parcial para especificar exclusivamente o modelo.

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

Você também pode criar seus próprios modelos de projeto personalizados. Para especificar o diretório no qual você armazenará os modelos, clique em Opções no menu Ferramentas. No painel esquerdo da caixa de diálogo Opções, clique em Projetos e Soluções. Digite o caminho para seus modelos na caixa de Local dos modelos de projeto de usuário do Visual Studio . Como alternativa, você pode aceitar as locais padrão.

Modelos personalizados exigem nomes de arquivo exclusivos não conflitantes com os nomes de arquivo definidos em:

  • <unidade>: \ Program files \ Microsoft Visual Studio 8 \ Common7 \ IDE \ ProjectTemplates \Linguagem

Verifique se você está usando nomes de arquivo longos (em vez de 8dot3). Para obter mais informações, consulte Creating Project and Item Templates.

Exemplos

Para obter informações sobre como executar este código do suplemento, consulte Como compilar e executar os exemplos de código do modelo de objeto Automation.

O exemplo a seguir mostra como criar uma solução e adicione um projeto de aplicativo de console.

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);
    }
}

Segurança do .NET Framework

Consulte também

Referência

Solution2 Interface

Namespace EnvDTE80