다음을 통해 공유


SolutionFolder 인터페이스

프로젝트 컨테이너인 솔루션 폴더를 사용하면 개발자가 커다란 응용 프로그램을 더 효율적으로 구성할 수 있습니다.

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

구문

‘선언
<GuidAttribute("F8F69788-267C-4408-8967-74F26108C438")> _
Public Interface SolutionFolder
[GuidAttribute("F8F69788-267C-4408-8967-74F26108C438")]
public interface SolutionFolder
[GuidAttribute(L"F8F69788-267C-4408-8967-74F26108C438")]
public interface class SolutionFolder
[<GuidAttribute("F8F69788-267C-4408-8967-74F26108C438")>]
type SolutionFolder =  interface end
public interface SolutionFolder

SolutionFolder 형식에서는 다음과 같은 멤버를 노출합니다.

속성

  이름 설명
Public 속성 DTE 최상위 확장성 개체를 가져옵니다.
Public 속성 Hidden 솔루션의 숨김 특성을 설정하거나 가져옵니다.
Public 속성 Parent Find 개체의 직계 부모를 가져옵니다.

위쪽

메서드

  이름 설명
Public 메서드 AddFromFile 솔루션 폴더에 기존 프로젝트를 추가합니다.
Public 메서드 AddFromTemplate 프로젝트 템플릿을 기반으로 솔루션 폴더에 새 프로젝트를 추가합니다.
Public 메서드 AddSolutionFolder 솔루션 폴더를 ProjectItems 컬렉션에 추가합니다.

위쪽

설명

Visual Studio 2005에서 솔루션에는 프로젝트 폴더뿐 아니라 솔루션 폴더가 포함될 수 있습니다. 프로젝트 컨테이너인 솔루션 폴더를 사용하면 개발자가 커다란 응용 프로그램을 더 효율적으로 구성할 수 있습니다.

솔루션의 Projects 속성은 Project 개체의 컬렉션을 반환합니다. 각각의 개별 Project 개체에는 vsProjectKindSolutionFolder로 설정할 수 있는 Kind 속성이 있습니다. SolutionFolder 인터페이스에 액세스하려면 Project.Object를 호출한 다음 반환되는 개체를 SolutionFolder 형식으로 캐스팅합니다.

예제

이 예제에서는 새 솔루션 폴더를 만들고 기존 파일의 프로젝트를 이 폴더에 추가합니다. 이 예제를 실행하기 전에 주 드라이브(이 예제의 경우 "C:") 아래에 "Projects" 폴더를 만들고 이 폴더에 "ClassLibrary1"이라는 Visual C# 클래스 라이브러리 프로젝트를 만듭니다. 또한 이 추가 기능을 실행하기 전에 Visual Studio IDE(통합 개발 환경)에서 프로젝트를 열어야 합니다.

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

Imports EnvDTE
Imports EnvDTE80
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)
    solnFolderAddFromFileExample(_applicationObject)
End Sub
Sub solnFolderAddFromFileExample(ByVal dte As DTE2)
    ' Before running this example, create a "Projects" folder
    ' off your main drive (C: in this example), and create a C# 
    ' class library project, named ClassLibrary1 in that folder.
    Dim soln As Solution2 = CType(_applicationObject.Solution _
    , Solution2)
    Dim prj As Project
    Dim SF As SolutionFolder
    Try
        Dim prjPath As String = _
        "C:\Projects\ClassLibrary1\ClassLibrary1\ClassLibrary1.csproj"
        ' Open a project in the Visual Studio IDE before running 
        ' this add-in.
        ' Add a solution folder.
        prj = soln.AddSolutionFolder("A new soln folder")
        SF = CType(prj.Object, SolutionFolder)
        ' Add a project to the new solution folder.
        SF.AddFromFile(prjPath)
        MsgBox("Added a new solution folder that contains a _
        C# project named ClassLibrary1.")
    Catch ex As System.Exception
        MsgBox(ex.ToString)
    End Try
End Sub
using EnvDTE;
using EnvDTE80;
using System.Windows.Forms;
public void OnConnection(object application, 
ext_ConnectMode connectMode, object addInInst, ref Array custom)
{
    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;
    solnFolderAddFromFileExample(_applicationObject);
}
public void solnFolderAddFromFileExample(DTE2 dte)
{
    // Before running this example, create a "Projects" folder
    // off your main drive (C: in this example), and create a C# 
    // class library project, named ClassLibrary1 in that folder.
    Solution2 soln = (Solution2)_applicationObject.Solution;
    Project prj;
    SolutionFolder SF;
    try
    {
        String prjPath =
 "C:\\Projects\\ClassLibrary1\\ClassLibrary1\\ClassLibrary1.csproj";
        // Open a project in the Visual Studio IDE before running 
        // this add-in.
        // Add a solution folder.
        prj = soln.AddSolutionFolder("A new soln folder");
        SF = (SolutionFolder)prj.Object;
        // Add a project to the new solution folder.
        SF.AddFromFile(prjPath);
    MessageBox.Show("Added a new solution folder that contains a 
C# project named ClassLibrary1.");
    }
    catch(SystemException ex)
    {
        MessageBox.Show(ex.ToString());
    }
}

참고 항목

참조

EnvDTE80 네임스페이스