다음을 통해 공유


VCBuild 및 MSBuild: Visual Studio 2010의 빌드 시스템 변경 내용

C++ 프로젝트용 MSBuild 시스템은 Visual Studio 2010에서 도입되었습니다. Visual Studio 2008 및 이전 릴리스에서는 VCBuild 시스템이 사용되었습니다. VCBuild에 의존하는 특정 파일 형식 및 개념은 존재하지 않거나 MSBuild에서 다르게 표시됩니다. 이 문서에서는 현재 빌드 시스템의 차이점을 설명합니다. Visual Studio 2008 프로젝트를 MSBuild로 변환하려면 Visual Studio 2010을 사용해야 합니다. 프로젝트를 변환한 후에는 최신 버전의 Visual Studio를 사용하여 현재 IDE 및 컴파일러 도구 집합으로 업그레이드해야 합니다. Visual Studio 2010을 가져오는 방법을 비롯한 자세한 내용은 Visual Studio 2008에 대한 지침을 참조하세요.

다음 섹션에서는 VCBuild에서 MSBuild로의 변경 내용을 요약합니다. VCBuild 프로젝트에 MSBuild에서 인식되지 않는 사용자 지정 빌드 규칙 또는 매크로가 있는 경우 Visual Studio 프로젝트 - C++를 참조하여 이러한 지침을 MSBuild 시스템으로 변환하는 방법을 알아봅니다. VCBuild에서 MSBuild로의 초기 변환은 중간 단계일 뿐입니다. 프로젝트 파일을 완전히 올바로 설정하거나 프로그램이 오류 없이 컴파일되도록 할 필요는 없습니다. Visual Studio 2010을 사용하여 프로젝트를 MSBuild 형식으로 변환하기만 하면 프로젝트가 최신 버전의 Visual Studio에서 작동합니다.

.vcproj는 이제 .vcxproj입니다.

프로젝트 파일은 더 이상 .vcproj 파일 이름 확장명을 사용하지 않습니다. Visual Studio 2010은 Visual C++의 이전 릴리스에서 만든 프로젝트 파일을 프로젝트 파일에 .vcxproj 확장을 사용하는 MSBuild 형식으로 자동으로 변환합니다.

.vsprops는 이제 .props입니다.

Visual Studio 2008 및 이전 버전에서 프로젝트 속성 시트 는 .vsprops 파일 이름 확장명을 가진 XML 기반 파일입니다. 프로젝트 속성 시트를 사용하면 컴파일러나 링커 등의 빌드 도구에 대한 스위치를 지정하고 사용자 정의 매크로를 만들 수 있습니다. MSBuild에서 프로젝트 속성 시트의 파일 이름 확장명은 .props입니다.

사용자 지정 빌드 규칙 및 .rules 파일

Visual Studio 2008 및 이전 버전에서 규칙 파일 은 .rules 파일 이름 확장명을 가진 XML 기반 파일입니다. 규칙 파일을 사용하면 사용자 지정 빌드 규칙을 정의하고 Visual Studio C++ 프로젝트의 빌드 프로세스에 통합할 수 있습니다. 하나 이상의 파일 이름 확장명과 연결할 수 있는 사용자 지정 빌드 규칙을 사용하면 하나 이상의 출력 파일을 만드는 도구에 입력 파일을 전달할 수 있습니다.

MSBuild 시스템에서 사용자 지정 빌드 규칙은 .rules 파일 대신 세 가지 파일 형식(.xml, .props 및 .targets)으로 표시됩니다. Visual C++의 이전 릴리스를 사용하여 만든 .rules 파일이 Visual Studio 2010으로 마이그레이션되면 해당 .xml, .props 및 .targets 파일이 생성되고 원래 .rules 파일과 함께 프로젝트에 저장됩니다.

Important

Visual Studio 2010에서 IDE는 새 규칙 만들기를 지원하지 않습니다. 이러한 이유로 Visual C++의 이전 릴리스를 사용하여 만든 프로젝트에서 규칙 파일을 사용하는 가장 쉬운 방법은 프로젝트를 Visual Studio 2010으로 마이그레이션하는 것입니다.

상속 매크로

Visual Studio 2008 및 이전 버전에서 $(상속) 매크로는 프로젝트 빌드 시스템에서 구성하는 명령줄에 상속된 속성이 표시되는 순서를 지정합니다. $(NoInherit) 매크로는 $(Inherit)이(가) 발생하더라도 무시하고 상속될 모든 속성을 상속되지 않게 합니다. 예를 들어, 기본적으로 $(Inherit) 매크로를 사용하면 /I (추가 포함 디렉터리) 컴파일러 옵션을 통해 지정한 파일을 명령줄에 추가할 수 있습니다.

Visual Studio 2010에서는 속성 값을 하나 이상의 리터럴 값과 속성 매크로의 연결로 지정하여 상속이 지원됩니다. $(Inherit)$(NoInherit) 매크로는 지원되지 않습니다.

다음 예제에서는 세미콜론으로 구분된 목록이 속성 페이지의 속성으로 할당됩니다. 이 목록은 값> 리터럴의< 연결과 매크로 표기법 $(MyProperty)를 사용하여 액세스되는 속성의 MyProperty 값으로 구성됩니다.

Property=<value>;$(MyProperty)

.vcxproj.user 파일

사용자 파일(.vcxproj.user)은 디버깅 및 배포 설정과 같은 사용자별 속성을 저장합니다. vcxproj.user 파일은 특정 사용자의 모든 프로젝트에 적용됩니다.

.vcxproj.filters 파일

솔루션 탐색기 사용하여 프로젝트에 파일을 추가하는 경우 필터 파일(.vcxproj.filters)은 파일 이름 확장명을 기반으로 솔루션 탐색기 트리 뷰에서 파일이 추가되는 위치를 정의합니다.

VC++ 디렉터리 설정

Visual C++ 디렉터리 설정은 VC++ 디렉터리 속성 페이지에 지정됩니다. Visual Studio 2008 이전 버전에서는 디렉터리 설정이 사용자별로 적용되고 제외된 디렉터리 목록이 sysincl.dat 파일에 지정됩니다.

명령줄에서 devenv /resetsettings를 실행하면 VC++ 디렉터리 설정을 변경할 수 없습니다. 또한 도구 메뉴를 열어 가져오기 및 내보내기 설정를 클릭한 다음, 모든 설정 다시 설정 옵션을 선택하면 설정을 변경할 수 없습니다.

Visual Studio의 이전 릴리스에서 만든 .vssettings 파일에서 VC++ 디렉터리 설정을 마이그레이션하려면 다음을 수행합니다.

  1. 도구 메뉴를 열고 설정 가져오기 및 내보내기를 클릭합니다.
  2. 선택한 환경 설정 가져오기 선택
  3. 마법사의 지침을 따릅니다.

참고 항목

명령줄의 MSBuild - C++