다음을 통해 공유


Solution2.GetProjectItemTemplate 메서드

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

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

구문

‘선언
Function GetProjectItemTemplate ( _
    TemplateName As String, _
    Language As String _
) As String
string GetProjectItemTemplate(
    string TemplateName,
    string Language
)
String^ GetProjectItemTemplate(
    String^ TemplateName, 
    String^ Language
)
abstract GetProjectItemTemplate : 
        TemplateName:string * 
        Language:string -> string 
function GetProjectItemTemplate(
    TemplateName : String, 
    Language : String
) : String

매개 변수

  • TemplateName
    형식: System.String
    템플릿의 이름입니다.
  • Language
    형식: System.String
    템플릿을 작성하는 데 사용되는 언어입니다.

반환 값

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

설명

프로젝트 템플릿은 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 8\Common7\IDE\ItemTemplates\Language.

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

예제

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

다음 예제에서는 HTML 페이지를 솔루션에 추가합니다.

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)
    SaveAsExample(_applicationObject)
End Sub

Sub SaveAsExample(ByVal dte As DTE2)
    ' This add-in adds an HTML page to a solution.
    ' Open a Visual Basic solution in Visual Studio
    ' before running this example.

    Dim soln As Solution2 = _
    CType(_applicationObject.Solution, Solution2)
    Dim prj As Project
    Dim prjItem As ProjectItem
    Dim itemPath As String

    Try
        prj = soln.Projects.Item(1)
        itemPath = soln.GetProjectItemTemplate("HTMLPage.zip", _
        "VisualBasic")
        ' Create a new project item based on the template. 
        ' (In this case, an HTML page.)
        prjItem =  _
        prj.ProjectItems.AddFromTemplate(itemPath, "MyNewHtml")

    Catch ex As SystemException
        MsgBox("ERROR: " & 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.
    SolnGetProjetItemExample((DTE2)_applicationObject);
}
public void SolnGetProjetItemExample(DTE2 dte)
{
    // This add-in adds an item to a Visual Basic solution.
    // Open a Visual Basic solution in Visual Studio 
    // before running this example.
 
    Solution2 soln = (Solution2)_applicationObject.Solution;
    Project prj;
    ProjectItem prjItem;
    string itemPath;
    try
    {

        prj = soln.Projects.Item(1);
        itemPath = 
soln.GetProjectItemTemplate("HTMLPage.zip", "VisualBasic");
        // Create a new project item based on the template. 
        // (In this case, an HTML page.)
        prjItem = 
prj.ProjectItems.AddFromTemplate(itemPath, "MyNewHtml");

    }
    catch (SystemException ex)
    {
        MessageBox.Show("ERROR: " + ex);
    }
}

.NET Framework 보안

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

참고 항목

참조

Solution2 인터페이스

EnvDTE80 네임스페이스