Share via


Solution3.GetProjectItemTemplates 메서드

지정한 프로젝트에 대해 프로젝트 항목 템플릿의 컬렉션을 반환합니다.

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

구문

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

매개 변수

  • Language
    형식: System.String
    프로젝트 항목 템플릿을 작성하는 데 사용되는 언어입니다.
  • CustomDataSignature
    형식: System.String
    프로젝트 항목 템플릿과 연결된 모든 메타데이터에 대한 서명입니다.

반환 값

형식: EnvDTE90.Templates
모든 프로젝트 항목 템플릿의 이름이 들어 있는 템플릿 컬렉션입니다.

설명

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

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

  • 스마트 장치 Visual Basic 가상 프로젝트의 GUID를 Language 매개 변수로 전달하고 zip 파일의 이름을 TemplateName으로 전달합니다.

    GetProjectItemTemplate("NETCFv2-Class.zip", "{3114F5B0-E435-4bc5-A03D-168E20D9BF83}");
    
  • 스마트 장치 Visual Basic 가상 프로젝트의 GUID를 Language 매개 변수로 전달하고 "Class" 문자열을 TemplateName으로 전달합니다. 문자열 "Class"는 폴더 계층에서 파생되며 UI(사용자 인터페이스) 문자열이라고 합니다. 다른 UI 문자열로는 "HTML Page"와 "Splash Screen"이 있습니다. UI 문자열은 로캘에 종속됩니다. TemplateName 매개 변수를 전달하는 가장 안전한 방법은 zip 파일의 이름을 사용하는 것입니다.

    GetProjectItemTemplate("Class", "{3114F5B0-E435-4bc5-A03D-168E20D9BF83}");
    
  • 문자열 "VisualBasic"을 Language 매개 변수로 전달하고 zip 파일의 이름을 TemplateName 매개 변수로 전달합니다. 이 방법을 사용할 수 있는 이유는 NETCFv2-Class.zip이 스마트 장치에 고유하기 때문입니다.

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

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

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

<drive>:\Program Files\Microsoft Visual Studio 9\Common7\IDE\ItemTemplates\Language.

8.3 형식이 아닌 긴 파일 이름을 사용해야 합니다. 자세한 내용은 프로젝트 템플릿 및 항목 템플릿 만들기을 참조하십시오.

예제

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

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

.NET Framework 보안

  • 직접 실행 호출자의 경우 완전히 신뢰합니다. 이 멤버는 부분적으로 신뢰할 수 있는 코드에서 사용할 수 없습니다. 자세한 내용은 부분 신뢰 코드에서 라이브러리 사용을 참조하십시오.

참고 항목

참조

Solution3 인터페이스

EnvDTE90 네임스페이스

기타 리소스

방법: 자동화 개체 모델 코드의 예제 컴파일 및 실행