다음을 통해 공유


일반 프로젝트 모델과 특정 언어 관련 프로젝트 모델 비교

업데이트: 2007년 11월

Visual Studio에서는 두 가지 유형의 프로젝트 모델, 즉 일반 프로젝트 모델과 프로그래밍 언어별 프로젝트 모델을 제공합니다.

일반 프로젝트 모델

일반 프로젝트 모델은 다음과 같은 형식으로 표시됩니다.

개체 이름

설명

Projects 컬렉션

솔루션의 모든 프로젝트를 나타냅니다.

Project 개체

솔루션의 단일 프로젝트를 나타냅니다.

ProjectItems 컬렉션

지정된 프로젝트의 모든 항목을 나타냅니다.

ProjectItem 개체

지정된 프로젝트의 단일 항목을 나타냅니다.

이러한 개체를 사용하면 Visual Studio에서 모든 언어 유형의 프로젝트를 조작할 수 있습니다. 이 개체를 사용하여 다음 작업을 수행할 수 있습니다.

  • 프로젝트 저장 또는 삭제

  • Visual Studio 템플릿을 기반으로 하여 프로젝트에 새 프로젝트 항목 만들기

  • 기존 파일에서 프로젝트로 프로젝트 항목 추가

  • 프로젝트에서 프로젝트 항목 제거

  • 프로젝트에서 프로젝트 항목 열기, 저장 및 삭제

언어별 프로젝트 모델

프로젝트와 관련된 일반 개체 외에도 프로그래밍 언어별 프로젝트 및 프로젝트 항목 속성을 나타내는 네임스페이스의 집합이 있습니다. 이러한 네임스페이스는 다음과 같습니다.

언어 프로젝트를 나타내는 주 개체는 VSProjectVSProject2입니다. VSProject2VSProject에서 파생되며, 이 개체는 다시 Project에서 파생됩니다. 프로젝트 항목은 VSProjectItem 개체로 표현됩니다.

프로그래밍 언어

네임스페이스

Visual C#

VSLangProj, VSLangProj2VSLangProj80

Visual Basic

VSLangProj, VSLangProj2VSLangProj80

Visual J#

VSLangProj, VSLangProj2VSLangProj80

Visual C++

Microsoft.VisualStudio.VCProjectMicrosoft.VisualStudio.VCProjectEngine.

모든 프로그래밍 언어

EnvDTEEnvDTE80.

언어별 개체는 일반 개체에서 파생되므로 기본적으로 일반 개체와 동일하게 동작하지만, 일반 ProjectProjectItem 개체로는 액세스할 수 없는 추가적인 속성, 메서드 및 이벤트에 액세스할 수 있다는 점이 다릅니다.

언어별 프로젝트 모델을 사용하는 방법에 대한 자세한 내용은 프로젝트 확장성 소개를 참조하십시오.

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

참고 항목

작업

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

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

기타 리소스

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