일반 프로젝트 모델과 특정 언어 관련 프로젝트 모델 비교
Visual Studio에서는 두 가지 유형의 프로젝트 모델, 즉 일반 프로젝트 모델과 프로그래밍 언어별 프로젝트 모델을 제공합니다.
일반 프로젝트 모델
일반 프로젝트 모델은 다음과 같은 형식으로 표시됩니다.
개체 이름 |
설명 |
---|---|
Projects 컬렉션 |
솔루션의 모든 프로젝트를 나타냅니다. |
Project 개체 |
솔루션의 단일 프로젝트를 나타냅니다. |
ProjectItems 컬렉션 |
지정된 프로젝트의 모든 항목을 나타냅니다. |
ProjectItem 개체 |
지정된 프로젝트의 단일 항목을 나타냅니다. |
이러한 개체를 사용하면 Visual Studio에서 모든 언어 유형의 프로젝트를 조작할 수 있습니다. 이 개체를 사용하여 다음 작업을 수행할 수 있습니다.
프로젝트 저장 또는 삭제
Visual Studio 템플릿을 기반으로 하여 프로젝트에 새 프로젝트 항목 만들기
기존 파일에서 프로젝트로 프로젝트 항목 추가
프로젝트에서 프로젝트 항목 제거
프로젝트에서 프로젝트 항목 열기, 저장 및 삭제
언어별 프로젝트 모델
프로젝트와 관련된 일반 개체 외에도 프로그래밍 언어별 프로젝트 및 프로젝트 항목 속성을 나타내는 네임스페이스의 집합이 있습니다. 이러한 네임스페이스는 다음과 같습니다.
언어 프로젝트를 나타내는 주 개체는 VSProject 및 VSProject2입니다. VSProject2는 VSProject에서 파생되며, 이 개체는 다시 Project에서 파생됩니다. 프로젝트 항목은 VSProjectItem 개체로 표현됩니다.
프로그래밍 언어 |
네임스페이스 |
---|---|
Visual C# |
|
Visual Basic |
|
Visual C++ |
Microsoft.VisualStudio.VCProject 및 Microsoft.VisualStudio.VCProjectEngine |
모든 프로그래밍 언어 |
언어별 개체는 일반 개체에서 파생되므로 기본적으로 일반 개체와 동일하게 동작하지만, 일반 Project 및 ProjectItem 개체로는 액세스할 수 없는 추가적인 속성, 메서드 및 이벤트에 액세스할 수 있다는 점이 다릅니다.
언어별 프로젝트 모델을 사용하는 방법에 대한 자세한 내용은 프로젝트 확장성 소개를 참조하십시오.
Visual Studio.NET 2003 Visual C++ 프로젝트의 변경 사항
Visual Studio .NET 2003 이상에서는 Visual C++의 ProjectItems 컬렉션을 별도로 처리할 필요가 없습니다. 즉, 이전 버전에서는 Visual C++ Projects 컬렉션에서 모든 Visual C++ 프로젝트 파일을 기본 목록 형식으로 저장했지만 새 버전에서는 다른 프로그래밍 언어와 마찬가지로 파일이 계층 구조로 저장됩니다.
이러한 변경은 기존 코드에 영향을 줄 수 있으므로 프로젝트에 특정 파일이 있는지 여부를 확인하기 위해 ProjectItems 컬렉션을 인덱싱하는 경우에는 새 프로젝트별 개체 모델에서 이전 버전의 동작을 에뮬레이트해야 합니다. 새 버전에서는 Visual C++ 개체에서 .Object를 호출하여 DTE 개체 모델로 돌아올 수 있다는 것이 주요 차이점입니다.
[Visual Basic]
Dim proj as VCProject = DTE.ActiveSolutionProjects(1).Object
Dim fileColl as IVCCollection = proj.Files
Dim file as VCFile = fileColl.Item("MyFile.cpp")
Dim projItem as ProjectItem = file.Object