Share via


Solution2.GetProjectTemplate 메서드

지정된 프로젝트 템플릿에 대한 경로를 반환합니다.

4.0 보다는 RequiredFrameworkVersion 요소의 서식 있는 경우 템플릿에 대 한 검색 일치 하는 항목을 찾을 수 있도록 호출에서 버전을 제공 해야 합니다. 예를 들어, 호출 하는 대신 GetProjectTemplate("Extensibility\\1033\\VSIXProject.zip", "CSharp"). call GetProjectTemplate("Extensibility\\1033\\VSIXProject.zip|FrameworkVersion=4.5", "CSharp");.

네임스페이스:  EnvDTE80
어셈블리:  EnvDTE80(EnvDTE80.dll)

구문

‘선언
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

매개 변수

  • TemplateName
    형식: String

    템플릿의 이름입니다.

  • Language
    형식: String

    템플릿을 작성하는 데 사용되는 언어입니다.

반환 값

형식: String
프로젝트 템플릿의 전체 이름입니다.

설명

프로젝트 템플릿은 zip 파일로 저장됩니다. 이 메서드에서는 프로젝트의 이름과 언어를 요청하고 템플릿에 대한 경로를 반환합니다.

GetProjectTemplate의 매개 변수는 다음과 같이 서로 다른 몇 가지 방법으로 제공할 수 있습니다.

  • "CSharp"을 Language 매개 변수로 전달하고 zip 파일의 이름을 TemplateName으로 전달합니다.

    GetProjectTemplate("PocketPC2003-ClassLibrary.zip", "CSharp");
    
  • "CSharp"을 Language 매개 변수로 전달하고 부분 파일 경로 " PocketPC2003\ClassLibrary.vstemplate"을 전달하여 TemplateName을 고유하게 지정합니다.

    GetProjectTemplate("PocketPC2003\ClassLibrary.vstemplate", "CSharp");//partial file path
    
  • 문자열 "CSharp"을 Language 매개 변수로 전달하고 문자열 "Pocket PC 2003 Class Library"를 TemplateName 매개 변수로 전달합니다. 문자열 "Pocket PC 2003 Class Library"는 폴더 계층에서 파생되며 UI(사용자 인터페이스) 문자열이라고 합니다. UI 문자열의 다른 예로는 "Console Application" 및 "Windows Application"이 있습니다.

    참고

    UI 문자열은 로캘에 따라 다릅니다.TemplateName 매개 변수를 전달하는 가장 안전한 방법은 zip 파일의 이름을 사용하는 것입니다.

    GetProjectTemplate("Pocket PC 2003 Class Library", "CSharp");
    
  • 문자열 "CSharp"을 Language 매개 변수로 전달하고 문자열 "PocketPC2003\Pocket PC 2003 Class Library"를 TemplateName 매개 변수로 전달합니다. 여기에는 템플릿을 고유하게 지정하기 위한 부분 경로와 UI 문자열이 포함됩니다.

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

자신만의 고유한 사용자 지정 프로젝트 템플릿을 만들 수도 있습니다. 템플릿을 저장할 디렉터리를 지정하려면 도구 메뉴에서 옵션을 클릭합니다. 옵션 대화 상자의 왼쪽 창에서 프로젝트 및 솔루션을 클릭합니다. Visual Studio 사용자 프로젝트 템플릿 위치 상자에 템플릿의 경로를 입력합니다. 또는 기본 위치를 그대로 적용할 수 있습니다.

사용자 지정 템플릿의 파일 이름은 다음 위치에 정의되어 있는 파일 이름과 충돌하지 않는 고유한 것이어야 합니다.

  • drive>:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates\Language

8.3 형식이 아닌 긴 파일 이름을 사용해야 합니다. 자세한 내용은 Creating Project and Item Templates을 참조하십시오.

예제

이 추가 기능 코드를 실행하는 방법에 대한 내용은 방법: 자동화 개체 모델 코드의 예제 컴파일 및 실행을 참조하십시오.

다음 예제에서는 솔루션을 만들고 콘솔 응용 프로그램 프로젝트를 추가하는 방법을 보여 줍니다.

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

.NET Framework 보안

참고 항목

참조

Solution2 인터페이스

EnvDTE80 네임스페이스