C++ 빌드 사용자 지정
Directory.Build.props 및 Directory.Build.targets를 사용하여 공통 부모 폴더 아래의 모든 C++ 프로젝트를 사용자 지정할 수 있습니다. 폴더별 사용자 지정을 참조하세요. 또한 C++ 프로젝트는 다음과 같은 확장성 포인트를 갖추고 있습니다. 속성을 사용하여 Microsoft.Cpp.* 파일 앞이나 뒤에 자동으로 가져올 .props
또는 .targets
파일을 지정할 수 있습니다.
- ForceImportAfterCppDefaultProps
- ForceImportBeforeCppProps
- ForceImportAfterCppProps
- ForceImportBeforeCppTargets
- ForceImportAfterCppTargets
이러한 가져오기를 통해 다른 속성에 종속된 속성 또는 다른 대상에 종속된 대상의 정의 시퀀스를 제어할 수 있습니다. .vcxproj
의 가져오기 순서는 다음과 같습니다.
vcxproj
Microsoft.Cpp.default.props
Microsoft.Common.props
Directory.Build.props
Microsoft.Cpp.props
Microsoft.Cpp.targets
Microsoft.Common.targets
Directory.Build.targets
.vcxproj 및 .props 파일 구조를 참조하세요. Microsoft.Cpp.default.props 또는 Microsoft.Cpp.props에 정의된 다른 속성을 사용하는 속성을 정의해야 하는 경우 다른 .props
파일(예: MyProps.props)을 만들고 이를 가리키는 ForceImportAfterCppProps
에 Directory.Build.props
속성을 정의할 수 있습니다.
<PropertyGroup>
<ForceImportAfterCppProps>$(MSBuildThisFileDirectory)\MyProps.props</ForceImportAfterCppProps>
</PropertyGroup>
MyProps.props는 Microsoft.Cpp.props의 맨 끝에서 자동으로 가져옵니다.
모든 C++ 빌드 사용자 지정
Visual Studio 설치 사용자 지정은 해당 사용자 지정을 추적하기 쉽지 않아서 권장되지 않지만, Visual Studio를 확장하여 특정 플랫폼의 C++ 빌드를 사용자 지정하는 경우 각 플랫폼의 .targets
파일을 만들어 해당 플랫폼의 적절한 가져오기 폴더에 Visual Studio 확장의 일부로 배치할 수 있습니다.
Win32 플랫폼용 .targets
파일인 Microsoft.Cpp.Win32.targets에는 다음 Import
요소가 포함되어 있습니다.
<Import Project="$(VCTargetsPath)\Platforms\Win32\ImportBefore\*.targets"
Condition="Exists('$(VCTargetsPath)\Platforms\Win32\ImportBefore')"
/>
같은 파일의 끝에는 비슷한 요소가 있습니다.
<Import Project="$(VCTargetsPath)\Platforms\Win32\ImportAfter\*.targets"
Condition="Exists('$(VCTargetsPath)\Platforms\Win32\ImportAfter')"
/>
*%ProgramFiles32%\MSBuild\Microsoft.Cpp\v{version}\Platforms*에는 다른 대상 플랫폼을 위한 비슷한 import 요소가 있습니다.
플랫폼에 따라 적절한 ImportAfter
폴더에 .targets
파일을 배치하면 MSBuild는 해당 플랫폼의 모든 C++ 빌드에 해당 파일을 가져옵니다. 필요한 경우, 여기에 여러 .targets
파일을 넣을 수 있습니다.
Visual Studio 확장성을 사용하여 새 플랫폼을 정의하는 등의 추가 사용자 지정을 수행할 수 있습니다. 자세한 내용은 C++ 프로젝트 확장성을 참조하세요.
명령줄에서 사용자 지정 가져오기 지정
C++ 프로젝트의 특정 빌드에 포함하려는 사용자 지정 .targets
의 경우 명령줄에서 ForceImportBeforeCppTargets
속성과 ForceImportAfterCppTargets
속성 중 하나 또는 둘 모두를 설정합니다.
msbuild /p:ForceImportBeforeCppTargets="C:\build\config\Custom.Before.Microsoft.Cpp.Targets" MyCppProject.vcxproj
(예를 들어 빌드 서버의 플랫폼에 대한 모든 C++ 빌드에 영향을 주기 위한) 전역 설정의 경우, 두 가지 방법이 있습니다. 첫째, 항상 설정되어 있는 시스템 환경 변수를 사용하여 이러한 속성을 설정할 수 있습니다. MSBuild는 항상 환경을 읽고 모든 환경 변수의 속성을 만들거나 재정의하기 때문에 이 방법은 효과적입니다.
관련 콘텐츠
- 빌드를 사용자 지정합니다.