다음을 통해 공유


방법: 템플릿을 사용하여 프로젝트를 만드는 코드 마이그레이션

업데이트: 2007년 11월

Visual Studio 2005에서는 프로젝트를 만드는 과정이 업데이트되었으며, 다음 절차에서는 자동화를 사용하여 프로그래밍 방식으로 코드를 만드는 기존 응용 프로그램을 업데이트하는 방법을 보여 줍니다.

Visual Studio .NET 2002 및 Visual Studio .NET 2003에서는 AddFromTemplate 메서드를 호출하고 .vsz, or .cpp, or .cs와 같은 템플릿 파일의 이름과 경로를 전달하여 프로젝트 템플릿을 기반으로 프로젝트를 만들었습니다.

그러나 Visual Studio 2005에서는 프로젝트 템플릿 파일이 .zip 파일에 압축되어 있으므로 이 과정은 더 이상 사용할 수 없습니다. 이러한 새 프로젝트 템플릿 시스템은 프로젝트 템플릿 만들기에 보다 자세하게 설명되어 있습니다. EnvDTE80 어셈블리에서는 이러한 압축된 새 프로젝트 템플릿에 액세스하기 위한 새로운 형식을 제공합니다. 업데이트된 버전의 AddFromTemplate 및 새 메서드(GetProjectTemplateGetProjectItemTemplate)를 사용하면 압축된 템플릿 파일을 기반으로 새 프로젝트 및 프로젝트 항목을 프로그래밍 방식으로 만들 수 있습니다.

Visual Studio 2005에서의 작업 과정은 GetProjectTemplate을 사용하여 지정한 템플릿 형식에 대한 경로를 가져온 다음 AddFromTemplate 메서드에 전달하여 새 프로젝트를 만드는 것입니다. 이렇게 하면 하드 코드된 템플릿 경로를 사용할 필요가 없습니다. 다음 절차에서는 이 작업을 수행하는 방법을 보여 줍니다.

새 프로젝트 코드를 업그레이드하려면

  1. 레거시 코드를 Visual Studio에서 로드하거나, 복사하거나, 가져옵니다.

  2. 프로젝트 및 프로젝트 항목 템플릿 위치를 하드 코드된 경로로 설정하는 코드 섹션을 다음 섹션에 있는 GetProjectTemplate 또는 GetProjectItemTemplate 메서드를 사용하는 코드로 바꿉니다.

  3. AddFromTemplate 메서드 호출을 AddFromTemplate 메서드로 바꿉니다.

  4. 코드를 컴파일하고 실행합니다.

예제

다음 예제에서는 프로그래밍 방식으로 프로젝트 및 프로젝트 항목을 만드는 절차를 보여 줍니다. 이 예제에서는 Visual Basic 콘솔 프로젝트를 만들고 HTML 페이지(프로젝트 항목)를 추가합니다.

Sub CreatePrjAndPrjItemExample()
    ' Get a reference to the Solution2 object and create
    ' the path variables.
    Dim soln As Solution2 = CType(DTE.Solution, Solution2)
    Dim vbPrjTemplatePath As String
    Dim vbItemTemplatePath As String
    Dim vbPrjPath As String = "C:\MyNewVBProject"
    Dim prjName As String = "New Visual Basic Console Project"
    Dim prj As Project
    Dim prjItems As ProjectItems

    MsgBox("Starting...")
    ' Get the project template path for a Visual Basic console project.
    vbPrjTemplatePath = _
    soln.GetProjectTemplate("ConsoleApplication.zip", _
     "VisualBasic")
    ' Create a new Visual Basic Console project by using the
    '  template obtained above.
    soln.AddFromTemplate(vbPrjTemplatePath, vbPrjPath, prjName, False)
    MsgBox("Done.")

    ' Reference the project and its items.
    prj = soln.Projects.Item(1)
    prjItems = prj.ProjectItems
    ' Get the path to the HTML Page template and add it to the project.
    vbItemTemplatePath = soln.GetProjectItemTemplate("HTMLPage.zip", _
    "VisualBasic")
    prjItems.AddFromTemplate(vbItemTemplatePath, "A New HTML Page")
End Sub
public void CreatePrjAndPrjItemExample(DTE2 dte)
{
    // Before running, set a reference to
    // System.Windows.Forms.
    // =============================
    // Get a reference to the Solution2 object and create
    // the path variables.
    Solution2 soln = (Solution2) dte.Solution;
    string vbPrjTemplatePath;
    string vbItemTemplatePath;
    string vbPrjPath = "C:\\MyNewVBProject";
    string prjName = "New Visual Basic Console Project";
    Project prj;
    ProjectItems prjItems;
    System.Windows.Forms.MessageBox.Show("Starting...");
    // Get the project template path for a Visual Basic console project.
    vbPrjTemplatePath = soln.GetProjectTemplate _
    ("ConsoleApplication.zip", VisualBasic");
    // Create a new Visual Basic Console project by using 
    // the template obtained above.
    soln.AddFromTemplate(vbPrjTemplatePath, vbPrjPath, prjName, false);
    System.Windows.Forms.MessageBox.Show("Done.");
     // Reference the project and its items.
    prj = soln.Projects.Item(1);
    prjItems = prj.ProjectItems;
    // Get the path to the HTML Page template and add it to the 
    // project.
    vbItemTemplatePath = soln.GetProjectItemTemplate _
    ("HTMLPage.zip", "VisualBasic");
    prjItems.AddFromTemplate(vbItemTemplatePath, "A New HTML Page");
}

참고 항목

작업

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

개념

프로젝트 및 솔루션 제어

VSProject2 개체 소개