tasks.vs.json 스키마 참조(C++)
열려 있는 폴더 프로젝트에서 소스 코드를 빌드하는 방법을 Visual Studio에 알리기 위해 tasks.vs.json 파일을 추가합니다. 이 파일에서 임의의 작업을 정의한 다음 솔루션 탐색기 바로 가기 메뉴에서 호출할 수 있습니다. 모든 빌드 명령은 CMakeLists.txt에 지정되어 있기 때문에 CMake 프로젝트는 이 파일을 사용하지 않습니다. CMake 이외의 빌드 시스템의 경우 tasks.vs.json에서 빌드 명령을 지정하고 빌드 스크립트를 호출할 수 있습니다. tasks.vs.json 사용에 대한 일반적인 정보는 “폴더 열기” 개발에 대한 빌드 및 디버그 작업 사용자 지정을 참조하세요.
작업에는 default
, launch
, remote
또는 msbuild
의 네 가지 값 중 하나를 가질 수 있는 type
속성이 있습니다. 원격 연결이 필요하지 않는 한 대부분의 작업은 launch
를 사용해야 합니다.
기본 속성
기본 속성은 모든 유형의 작업에서 사용할 수 있습니다.
속성 | Type | 설명 |
---|---|---|
taskLabel |
string | (필수) 사용자 인터페이스에 사용되는 작업 레이블을 지정합니다. |
appliesTo |
string | (필수) 명령을 수행할 수 있는 파일을 지정합니다. 와일드카드 사용이 지원됩니다(예: “”, “.cpp”, “/*.txt”). |
contextType |
string | 허용되는 값: “custom”, “build”, “clean”, “rebuild”. 바로 가기 메뉴에서 작업이 표시되는 위치를 결정합니다. 기본값은 “custom”입니다. |
output |
string | 작업에 출력 태그를 지정합니다. |
inheritEnvironments |
array | 여러 소스에서 상속되는 환경 변수 집합을 지정합니다. CMakeSettings.json 또는 CppProperties.json과 같은 파일에 변수를 정의하고 작업 컨텍스트에 사용하도록 할 수 있습니다. Visual Studio 16.4:: 구문을 사용하여 작업별로 환경 변수를 env.VARIABLE_NAME 지정합니다. 변수를 설정 해제하려면 변수를 "Null"로 설정합니다. |
passEnvVars |
부울 값 | 작업 컨텍스트에 추가 환경 변수를 포함할지를 지정합니다. 관련 변수는 envVars 속성을 사용하여 정의된 변수와 다릅니다. 기본값은 “true”입니다. |
시작 속성
작업 유형이 launch
인 경우 다음 속성을 사용할 수 있습니다.
속성 | Type | 설명 |
---|---|---|
command |
string | 시작할 프로세스나 스크립트의 전체 경로를 지정합니다. |
args |
배열 | 명령에 전달되는 쉼표로 구분된 인수 목록을 지정합니다. |
launchOption |
string | 허용되는 값: "None", "ContinueOnError","IgnoreError". 오류가 있는 경우 명령을 사용하여 진행하는 방법을 지정합니다. |
workingDirectory |
string | 명령이 실행될 디렉터리를 지정합니다. 프로젝트의 현재 작업 디렉터리에 대한 기본값입니다. |
customLaunchCommand |
string | 명령을 실행하기 전에 적용할 전역 범위 사용자 지정을 지정합니다. %PATH%와 같은 환경 변수를 설정하는 데 유용합니다. |
customLaunchCommandArgs |
string | CustomLaunchCommand에 대한 인수를 지정합니다. customLaunchCommand 가 필요합니다. |
env |
사용자 지정 환경 변수의 키-값 목록을 지정합니다. 예: “myEnv”: “Myenv” | |
commands |
배열 | 순서대로 호출할 명령의 목록을 지정합니다. |
예시
다음 작업은 Cppproperties.json 스키마 참조에 표시된 대로 메이크파일이 폴더에 제공되고 Mingw64
환경이 Cppproperties.json에 정의된 경우 make.exe를 호출합니다.
{
"version": "0.2.1",
"tasks": [
{
"taskLabel": "gcc make",
"appliesTo": "*.cpp",
"type": "launch",
"contextType": "custom",
"inheritEnvironments": [
"Mingw64"
],
"command": "make"
},
{
"taskLabel": "gcc clean",
"appliesTo": "*.cpp",
"type": "launch",
"contextType": "custom",
"inheritEnvironments": [
"Mingw64"
],
"command": "make",
"args": ["clean"]
}
]
}
관련 작업은 솔루션 탐색기에서 .cpp 파일을 마우스 오른쪽 단추로 클릭하면 바로 가기 메뉴에서 호출할 수 있습니다.
원격 속성
C++ 워크로드를 사용하여 Linux 개발을 설치하고 Visual Studio 연결 관리자를 사용하여 원격 컴퓨터에 연결을 추가하면 원격 작업이 활성화됩니다. 원격 작업은 원격 시스템에서 명령을 실행하고 여기에 파일을 복사할 수도 있습니다.
작업 유형이 remote
인 경우 다음 속성을 사용할 수 있습니다.
속성 | Type | 설명 |
---|---|---|
remoteMachineName |
string | 원격 컴퓨터의 이름입니다. 연결 관리자의 컴퓨터 이름과 일치해야 합니다. |
command |
string | 원격 컴퓨터에 보낼 명령입니다. 기본적으로 명령은 원격 시스템의 $HOME 디렉터리에서 실행됩니다. |
remoteWorkingDirectory |
string | 원격 컴퓨터의 현재 작업 디렉터리입니다. |
localCopyDirectory |
string | 원격 컴퓨터에 복사할 로컬 디렉터리입니다. 기본값은 현재 작업 디렉터리입니다. |
remoteCopyDirectory |
string | localCopyDirectory 가 복사되는 원격 컴퓨터의 디렉터리입니다. |
remoteCopyMethod |
string | 복사에 사용할 메서드입니다. 허용되는 값: “none”, “sftp”, “rsync”. 대규모 프로젝트에는 rsync를 권장합니다. |
remoteCopySourcesOutputVerbosity |
string | 허용되는 값: "Normal","Verbose","Diagnostic". |
rsyncCommandArgs |
string | “-t --delete”에 대한 기본값입니다. |
remoteCopyExclusionList |
배열 | localCopyDirectory 에서 복사 작업에서 제외되는 쉼표로 구분된 파일 목록입니다. |
예시
다음 작업은 솔루션 탐색기에서 main.cpp를 마우스 오른쪽 단추로 클릭하면 바로 가기 메뉴에 표시됩니다. 연결 관리자에서 ubuntu
라는 원격 컴퓨터에 종속됩니다. 작업은 Visual Studio에서 현재 열려 있는 폴더를 원격 컴퓨터의 sample
디렉터리로 복사한 다음 g++를 호출하여 프로그램을 빌드합니다.
{
"version": "0.2.1",
"tasks": [
{
"taskLabel": "Build",
"appliesTo": "main.cpp",
"type": "remote",
"contextType": "build",
"command": "g++ main.cpp",
"remoteMachineName": "ubuntu",
"remoteCopyDirectory": "~/sample",
"remoteCopyMethod": "sftp",
"remoteWorkingDirectory": "~/sample/hello",
"remoteCopySourcesOutputVerbosity": "Verbose"
}
]
}
MSBuild 속성
작업 유형이 msbuild
인 경우 다음 속성을 사용할 수 있습니다.
속성 | Type | 설명 |
---|---|---|
verbosity |
string | MSBuild 프로젝트 빌드 출력 verbosityAllowed 값을 지정합니다. "Quiet", "Minimal", "Normal", "Detailed", "Diagnostic". |
toolsVersion |
string | 프로젝트를 빌드할 도구 집합 버전을 지정합니다(예: “2.0”, “3.5”, “4.0”, “Current”). 기본값은 “Current”입니다. |
globalProperties |
개체 | 프로젝트에 전달할 전역 속성의 키-값 목록을 지정합니다(예: “Configuration”: “Release”). |
properties |
개체 | 추가 프로젝트 전용 속성의 키-값 목록을 지정합니다. |
targets |
배열 | 프로젝트에서 순서대로 호출할 대상 목록을 지정합니다. 아무것도 지정하지 않으면 프로젝트의 기본 대상이 사용됩니다. |