Referência de esquema tasks.vs.json (C++)
Para informar ao Visual Studio como criar seu código-fonte em um projeto Open Folder, adicione um arquivo tasks.vs.json. Defina qualquer tarefa arbitrária nesse arquivo e, em seguida, invoque-a no menu de contexto do Gerenciador de Soluções. Projetos CMake não usam este arquivo porque todos os comandos de build são especificados em CMakeLists.txt. Para sistemas de build diferentes do CMake, é em tasks.vs.json que você pode especificar comandos de build e invocar scripts de build. Para obter informações gerais sobre como usar tasks.vs.json, confira Personalizar o build e depurar tarefas para desenvolvimento "Open Folder".
Uma tarefa tem uma propriedade type
que pode ter um dos quatro valores: default
, launch
, remote
ou msbuild
. A maioria das tarefas deve usar launch
, a menos que uma conexão remota seja necessária.
Propriedades padrão
As propriedades padrão estão disponíveis em todos os tipos de tarefas:
Propriedade | Type | Descrição |
---|---|---|
taskLabel |
string | (Exigido.) Especifica o rótulo da tarefa usado na interface do usuário. |
appliesTo |
string | (Exigido.) Especifica em quais arquivos o comando pode ser executado. Há suporte para o uso de curingas, por exemplo: "", ".cpp", "/*.txt" |
contextType |
string | Valores permitidos: "custom", "build", "clean", "rebuild". Determina onde, no menu de contexto, a tarefa será exibida. O padrão é "custom". |
output |
string | Especifica uma marca de saída para sua tarefa. |
inheritEnvironments |
matriz | Especifica um conjunto de variáveis de ambiente herdadas de várias origens. Você pode definir variáveis em arquivos como CMakeSettings.json ou CppProperties.json e disponibilizá-las para o contexto da tarefa. Visual Studio 16.4: especifique variáveis de ambiente por tarefa usando a sintaxe env.VARIABLE_NAME . Para remover definição de uma variável, defina-a como "null". |
passEnvVars |
boolean | Especifica se as variáveis de ambiente adicionais devem ou não ser incluídas no contexto da tarefa. Essas variáveis são diferentes daquelas definidas usando a propriedade envVars . O padrão é "true". |
Propriedades de inicialização
Quando o tipo de tarefa é launch
, estas propriedades estão disponíveis:
Propriedade | Type | Descrição |
---|---|---|
command |
string | Especifica o caminho completo do processo ou script a ser iniciado. |
args |
matriz | Especifica uma lista separada por vírgulas de argumentos passados para o comando. |
launchOption |
string | Valores permitidos: "None", "ContinueOnError", "IgnoreError". Especifica como proceder com o comando quando há erros. |
workingDirectory |
string | Especifica o diretório no qual o comando será executado. O padrão é o diretório de trabalho atual do projeto. |
customLaunchCommand |
string | Especifica uma personalização de escopo global a ser aplicada antes de executar o comando. Útil para definir variáveis de ambiente, como %PATH%. |
customLaunchCommandArgs |
string | Especifica argumentos para customLaunchCommand. (Exige customLaunchCommand .) |
env |
Especifica uma lista de valores-chave de variáveis de ambiente personalizadas. Por exemplo, "myEnv": "myVal" | |
commands |
matriz | Especifica uma lista de comandos a serem invocados em ordem. |
Exemplo
As seguintes tarefas invocam make.exe quando um makefile é fornecido na pasta e o ambiente Mingw64
foi definido em CppProperties.json, conforme mostrado na referência de esquema 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"]
}
]
}
Essas tarefas podem ser invocadas no menu de contexto quando você clica com o botão direito do mouse em um arquivo .cpp no Gerenciador de Soluções.
Propriedades remotas
As tarefas remotas são habilitadas quando você instala a carga de trabalho Desenvolvimento de Linux com C++ e adiciona uma conexão a um computador remoto usando o Gerenciador de Conexões do Visual Studio. Uma tarefa remota executa comandos em um sistema remoto e também pode copiar arquivos para ele.
Quando o tipo de tarefa é remote
, estas propriedades estão disponíveis:
Propriedade | Type | Descrição |
---|---|---|
remoteMachineName |
string | O nome do computador remoto. Precisa corresponder a um nome de computador no Gerenciador de Conexões. |
command |
string | O comando a ser enviado para o computador remoto. Por padrão, os comandos são executados no diretório $HOME no sistema remoto. |
remoteWorkingDirectory |
string | O diretório de trabalho atual no computador remoto. |
localCopyDirectory |
string | O diretório local a ser copiado para o computador remoto. Usa o diretório de trabalho atual por padrão. |
remoteCopyDirectory |
string | O diretório no computador remoto para o qual localCopyDirectory é copiado. |
remoteCopyMethod |
string | O método a ser usado para cópia. Valores permitidos: "none", "sftp", "rsync". Rsync é recomendado para projetos grandes. |
remoteCopySourcesOutputVerbosity |
string | Valores permitidos: "Normal", "Verbose", "Diagnostic". |
rsyncCommandArgs |
string | O padrão é "-t --delete". |
remoteCopyExclusionList |
matriz | Lista de arquivos separados por vírgulas em localCopyDirectory a serem excluídos das operações de cópia. |
Exemplo
A tarefa a seguir aparecerá no menu de contexto quando você clicar com o botão direito do mouse em main.cpp no Gerenciador de Soluções. Depende de um computador remoto chamado ubuntu
no Gerenciador de Conexões. A tarefa copia a pasta aberta atual no Visual Studio para o diretório sample
no computador remoto e, em seguida, invoca g++ para compilar o programa.
{
"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"
}
]
}
propriedades MSBuild
Quando o tipo de tarefa é msbuild
, estas propriedades estão disponíveis:
Propriedade | Type | Descrição |
---|---|---|
verbosity |
string | Especifica os valores de saída de build do projeto MSBuild verbosityAllowed: "Quiet", "Minimal", "Normal", "Detailed", "Diagnostic". |
toolsVersion |
string | Especifica a versão do conjunto de ferramentas para criar o projeto, por exemplo, "2.0", "3.5", "4.0", "Current". O padrão é "Current". |
globalProperties |
objeto | Especifica uma lista de pares chave-valor das propriedades globais a serem passadas para o projeto, por exemplo, "Configuration":"Release" |
properties |
objeto | Especifica uma lista de pares chave-valor de propriedades adicionais somente de projeto. |
targets |
matriz | Especifica a lista de destinos a serem invocados, em ordem, no projeto. Se nenhum for especificado, o destino padrão do projeto será usado. |