Справочник по схеме tasks.vs.json (C++)
Чтобы сообщить Visual Studio о том, как создать исходный код в проекте "Открытая папка", добавьте файл tasks.vs.json. В нем можно определить любую произвольную задачу, а затем вызывать ее из контекстного меню обозревателя решений. Проекты CMake не используют этот файл, так как все команды сборки указываются в файле CMakeLists.txt. Для систем сборки, отличных от CMake, в файле tasks.vs.json можно задавать команды сборки и вызывать скрипты сборки. Общие сведения об использовании tasks.vs.json см. в разделе Настройка задач сборки и отладки для режима разработки "Открытая папка".
Задача имеет свойство type
, которое может иметь одно из четырех значений: default
, launch
, remote
или msbuild
. В большинстве задач следует использовать launch
, если только не требуется удаленное подключение.
Свойства по умолчанию
Свойства по умолчанию доступны для всех типов задач:
Свойство | Type | Описание: |
---|---|---|
taskLabel |
строка | (Обязательно.) Указывает метку задачи, используемую в пользовательском интерфейсе. |
appliesTo |
строка | (Обязательно.) Указывает, какие файлы можно выполнить с помощью команды. Поддерживается использование подстановочных знаков, например: "", ".cpp", "/*.txt" |
contextType |
строка | Допустимые значения: "custom", "build", "clean", "rebuild". Определяет, где в контекстном меню будет отображаться задача. По умолчанию имеет значение "custom". |
output |
строка | Указывает выходной тег для задачи. |
inheritEnvironments |
array | Задает набор переменных среды, унаследованных из нескольких источников. Можно определить переменные в файлах, например CMakeSettings.json или CppProperties.json, и сделать их доступными для контекста задачи. Visual Studio 16.4.: укажите переменные среды на основе каждой задачи с помощью синтаксиса env.VARIABLE_NAME . Чтобы отменить переменную, задайте для нее значение NULL. |
passEnvVars |
boolean | Указывает, следует ли включать дополнительные переменные среды в контекст задачи. Эти переменные отличаются от тех, которые определены с помощью свойства envVars . Значение по умолчанию: "true". |
Свойства запуска
Если тип задачи — launch
, доступны следующие свойства:
Свойство | Type | Описание: |
---|---|---|
command |
строка | Указывает полный путь к запускаемому процессу или скрипту. |
args |
array | Задает разделенный запятыми список аргументов, передаваемых команде. |
launchOption |
строка | Допустимые значения: "None", "ContinueOnError", "IgnoreError". Указывает, как продолжить выполнение команды при возникновении ошибок. |
workingDirectory |
строка | Указывает каталог, в котором будет выполняться команда. По умолчанию используется текущая рабочая папка проекта. |
customLaunchCommand |
строка | Задает глобальную настройку области, применяемую перед выполнением команды. Полезно для задания переменных среды, таких как %PATH%. |
customLaunchCommandArgs |
строка | Указывает аргументы для customLaunchCommand. (Требует customLaunchCommand .) |
env |
Указывает список значений ключа для настраиваемых переменных среды. Например, "myEnv": "myVal" | |
commands |
array | Указывает список команд для вызова по порядку. |
Пример
Следующие задачи вызывают make.exe, когда в папке содержится файл makefile, а среда Mingw64
определена в файле CppProperties.json, как указано в справочнике по схеме CppProperties.json:
{
"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 в обозревателе решений.
Удаленные свойства
Удаленные задачи включаются при установке разработки Linux с рабочей нагрузкой C++ и добавлении подключения к удаленному компьютеру с помощью диспетчера подключений Visual Studio. Удаленная задача запускает команды в удаленной системе и также может копировать в нее файлы.
Если тип задачи — remote
, доступны следующие свойства:
Свойство | Type | Описание: |
---|---|---|
remoteMachineName |
строка | Имя удаленного компьютера. Должно соответствовать имени компьютера в диспетчере подключений. |
command |
строка | Команда для отправки на удаленный компьютер. По умолчанию команды выполняются в каталоге $HOME в удаленной системе. |
remoteWorkingDirectory |
строка | Текущий рабочий каталог на удаленном компьютере. |
localCopyDirectory |
строка | Локальный каталог для копирования на удаленный компьютер. По умолчанию используется текущий рабочий каталог. |
remoteCopyDirectory |
строка | Каталог на удаленном компьютере, в который копируется localCopyDirectory . |
remoteCopyMethod |
строка | Метод, используемый для копирования. Допустимые значения: "none", "sftp", "rsync". Для больших проектов рекомендуется использовать rsync. |
remoteCopySourcesOutputVerbosity |
строка | Допустимые значения: "Normal", "Verbose", "Diagnostic". |
rsyncCommandArgs |
строка | По умолчанию используется значение "-t --delete". |
remoteCopyExclusionList |
array | Разделенный запятыми список файлов в 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 |
строка | Указывает выходные значения выходных данных сборки проекта MSBuildAllowed: "Тихий", "Минимальный", "Обычный", "Подробный", "Диагностика". |
toolsVersion |
строка | Указывает версию набора инструментов для сборки проекта, например "2.0", "3.5", "4.0", "Current". Значение по умолчанию: "Current". |
globalProperties |
объект | Указывает список ключевых значений глобальных свойств для передачи в проект, например "Configuration":"Release" |
properties |
объект | Указывает список "ключ-значение" свойств только дополнительного проекта. |
targets |
array | Указывает список целевых объектов для вызова по порядку в проекте. Если значение не указано, используется целевой объект проекта по умолчанию. |