방법: 프로그래밍 방식으로 프로젝트 만들기

Visual Studio의 추가 기능은 Visual Studio 2013에서 사용되지 않습니다. 추가 기능을 VSPackage 확장으로 업그레이드하는 것이 좋습니다. 업그레이드에 대한 자세한 내용은 FAQ: VSPackage 확장으로 추가 기능 변환 을 참조하십시오.

프로젝트를 만들려면 먼저 GetProjectTemplate을 호출한 다음 반환된 템플릿 경로를 AddFromTemplate에 전달합니다.

프로젝트 템플릿은 확장명이 .vstemplate이며 .zip 파일에 저장됩니다. .zip 파일에 저장된 .vstemplate 파일의 경로를 가져오려면 GetProjectTemplate을 사용한 다음 이를 AddFromTemplate에 전달하여 프로젝트를 만듭니다. 솔루션이 열려 있지 않은 경우 솔루션도 만들 수 있습니다. 이 작업은 필요한 횟수만큼 수행할 수 있으며, 모든 프로젝트는 현재 열려 있는 솔루션에 추가됩니다.

모든 언어에 대한 프로젝트 템플릿은 Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ProjectTemplates\Language\에 있습니다.

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

사용자 지정 프로젝트는 Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ProjectTemplates\Language\에 정의된 파일 이름과 충돌하지 않는 고유한 파일 이름을 가져야 합니다.

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

참고

표시되는 대화 상자와 메뉴 명령은 활성 설정이나 버전에 따라 도움말에서 설명하는 것과 다를 수 있습니다.이러한 절차는 일반 개발 설정을 사용하여 개발되었습니다.설정을 변경하려면 도구 메뉴에서 설정가져오기 및 내보내기를 클릭합니다.자세한 내용은 Visual Studio에서 개발 설정 사용자 지정을 참조하십시오.

프로젝트 만들기

프로그래밍 방식으로 프로젝트를 만들려면

  1. Visual Studio를 시작하고 Visual Studio 추가 기능 프로젝트를 만듭니다.

  2. 추가 기능 Connect 클래스에 이 항목의 뒤에 나오는 예제 코드를 추가합니다.

  3. 추가 기능 프로젝트를 실행하고 추가 기능 관리자에서 활성화합니다.

    이렇게 하려면 도구 메뉴에서 추가 기능 관리자를 클릭한 추가 기능을 선택합니다.

예제

다음 예제에서는 GetProjectTemplateAddFromTemplate을 사용하여 솔루션에서 Visual Basic 및 Visual C#의 두 콘솔 프로젝트를 만듭니다.

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

Sub createProjectsFromTemplates(ByVal dte As DTE2)
    Try
        ' Create a solution with two projects in it, based on project 
        ' templates.
        Dim soln As Solution2 = CType(DTE.Solution, _
        Solution2)
        Dim csTemplatePath As String
        Dim vbTemplatePath As String
        Dim csPrjPath As String = _
        "C:\UserFiles\user1\addins\MyCSProject"
        Dim vbPrjPath As String = _
        "C:\UserFiles\user1\addins\MyVBProject"

        ' Get the project template path for a C# console project.
        ' Console Application is the template name that appears in the 
        ' right pane, "CSharp" is the Language(vstemplate) as seen in 
        ' the registry.
        csTemplatePath = soln.GetProjectTemplate _
        ("ConsoleApplication.zip", "CSharp")
        MsgBox("C# template path: " & csTemplatePath)
        ' Get the project template path for a Visual Basic
        ' console project.
        ' "vbproj: is the DefaultProjectExtension as seen in the 
        ' registry.
        vbTemplatePath = soln.GetProjectTemplate _
        ("ConsoleApplication.zip", "vbproj")
        MsgBox("Visual Basic template path: " & vbTemplatePath)
        ' Create a new C# console project using the template obtained 
        ' above.
        soln.AddFromTemplate(csTemplatePath, csPrjPath, _
          "New CSharp Console Project", False)
        ' Create a new Visual Basic console project using the template
        ' obtained above.
        soln.AddFromTemplate(vbTemplatePath, vbPrjPath, _
          "New Visual Basic Console Project", False)
    Catch ex As System.Exception
        MsgBox("ERROR: " & ex.ToString)
    End Try
End Sub
public void OnConnection(object application, ext_ConnectMode 
  connectMode, object addInInst, ref Array custom)
{
    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;
    createProjectsFromTemplates(_applicationObject);
}

public void createProjectsFromTemplates(DTE2 dte)
{
    try
    {
        // Create a solution with two projects in it, based on project 
        // templates.
        Solution2 soln = (Solution2)dte.Solution;
        string csTemplatePath;
        string vbTemplatePath;
        string csPrjPath = "C:\\UserFiles\\user1\\addins\\MyCSProject";
        string vbPrjPath = "C:\\UserFiles\\user1\\addins\\MyVBProject";
        // Get the project template path for a C# console project.
        // Console Application is the template name that appears in 
        // the right pane. "CSharp" is the Language(vstemplate) as seen 
        // in the registry.
        csTemplatePath = soln.GetProjectTemplate("ConsoleApplication.zip", 
          "CSharp");
        System.Windows.Forms.MessageBox.Show("C# template path: " + 
          csTemplatePath);
        // Get the project template path for a Visual Basic console
        // project.
        // "vbproj: is the DefaultProjectExtension as seen in the 
        // registry.
        vbTemplatePath = soln.GetProjectTemplate("ConsoleApplication.zip", 
          "vbproj");
        System.Windows.Forms.MessageBox.Show("Visual Basic template path: " + 
          vbTemplatePath);
        // Create a new C# console project using the template obtained 
        // above.
        soln.AddFromTemplate(csTemplatePath, csPrjPath, "New CSharp 
          Console Project", false);
        // Create a new Visual Basic console project using the template 
        // obtained above.
        soln.AddFromTemplate(vbTemplatePath, vbPrjPath, "New VB Console 
          Project", false);
    }
    catch (System.Exception ex)
    {
        System.Windows.Forms.MessageBox.Show("ERROR: " + ex.Message);
    }
}

참고 항목

작업

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

방법: 프로그래밍 방식으로 프로젝트 항목 만들기

개념

Visual Basic 및 Visual C# 프로젝트 조작

Visual C++ 프로젝트 조작

기타 리소스

솔루션 및 해당 프로젝트 제어