Partilhar via


tasks.vs.json referência de esquema (C++)

Para informar ao Visual Studio como criar seu código-fonte em um projeto Open Folder, adicione um arquivo tasks.vs.json . Você pode definir qualquer tarefa arbitrária aqui e, em seguida, invocá-la no menu de contexto do Gerenciador de Soluções . Os projetos CMake não usam esse arquivo porque todos os comandos de compilação são especificados em CMakeLists.txt. Para sistemas de compilação diferentes do CMake, tasks.vs.json é onde você pode especificar comandos de compilação e invocar scripts de construção. Para obter informações gerais sobre como usar tasks.vs.json, consulte Personalizar tarefas de compilação e de debugging para o desenvolvimento de "Abrir pasta".

Uma tarefa tem uma type propriedade que pode ter um dos quatro valores: default, launch, remote, ou msbuild. A maioria das tarefas deve ser usada 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 Tipo Descrição
taskLabel corda (Obrigatório.) Especifica o rótulo da tarefa usada na interface do usuário.
appliesTo corda (Obrigatório.) Especifica em quais arquivos o comando pode ser executado. O uso de curingas é suportado, por exemplo: "", ".cpp", "/*.txt"
contextType corda Valores permitidos: "personalizado", "construir", "limpar", "reconstruir". Determina onde no menu de contexto a tarefa aparecerá. Predefinido para "personalizado".
output corda Especifica uma tag de saída para sua tarefa.
inheritEnvironments conjunto Especifica um conjunto de variáveis de ambiente herdadas de várias fontes. 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 env.VARIABLE_NAME sintaxe. Para desdefinir uma variável, defina-a como "null".
passEnvVars Booleano Especifica se devem ou não ser incluídas variáveis de ambiente adicionais ao contexto da tarefa. Essas variáveis são diferentes daquelas definidas usando a envVars propriedade. O padrão é "true".

Abrir propriedades

Quando o tipo de tarefa é launch, estas propriedades estão disponíveis:

Propriedade Tipo Descrição
command corda Especifica o caminho completo do processo ou script a ser iniciado.
args conjunto Especifica uma lista separada por vírgulas de argumentos passados para o comando.
launchOption corda Valores permitidos: "None", "ContinueOnError","IgnoreError". Especifica como prosseguir com o comando quando houver erros.
workingDirectory corda Especifica o diretório no qual o comando será executado. O valor predefinido é o diretório de trabalho atual do projeto.
customLaunchCommand corda 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 corda Especifica argumentos para customLaunchCommand. (Requer customLaunchCommand.)
env Especifica uma lista chave-valor de variáveis de ambiente personalizadas. Por exemplo, "myEnv": "myVal"
commands conjunto Especifica uma lista de comandos a serem invocados na ordem.

Exemplo

As tarefas a seguir invocam make.exe quando um makefile é fornecido na pasta e o Mingw64 ambiente foi definido em CppProperties.json, conforme mostrado em CppProperties.json referência de esquema:

 {
  "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 o desenvolvimento Linux com carga de trabalho C++ e adiciona uma conexão a uma máquina remota 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 Tipo Descrição
remoteMachineName corda O nome da máquina remota. Deve corresponder a um nome de máquina no Connection Manager.
command corda O comando a ser enviado para a máquina remota. Por padrão, os comandos são executados no diretório $HOME no sistema remoto.
remoteWorkingDirectory corda O diretório de trabalho atual na máquina remota.
localCopyDirectory corda O diretório local a ser copiado para a máquina remota. O padrão é o diretório de trabalho atual.
remoteCopyDirectory corda O diretório na máquina remota em que localCopyDirectory é copiado.
remoteCopyMethod corda O método a ser usado para copiar. Valores permitidos: "none", "sftp", "rsync". O rsync é recomendado para projetos grandes.
remoteCopySourcesOutputVerbosity corda Valores permitidos: "Normal","Verbose","Diagnóstico".
rsyncCommandArgs corda O padrão é "-t --delete".
remoteCopyExclusionList conjunto Lista de ficheiros separados por vírgulas em localCopyDirectory a excluir 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 uma máquina remota chamada ubuntu no Connection Manager. A tarefa copia a pasta aberta atual no Visual Studio para o sample diretório na máquina remota e, em seguida, invoca g++ para criar 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 do MSBuild

Quando o tipo de tarefa é msbuild, estas propriedades estão disponíveis:

Propriedade Tipo Descrição
verbosity corda Especifica a verbosidade de saída do processo de compilação do projeto MSBuild. Valores permitidos: "Quiet", "Minimal", "Normal", "Detailed", "Diagnostic".
toolsVersion corda Especifica a versão do conjunto de ferramentas para criar o projeto, por exemplo "2.0", "3.5", "4.0", "Atual". O padrão é "Atual".
globalProperties objeto Especifica uma lista de chave-valor das propriedades globais a serem passadas para o projeto, por exemplo, "Configuration":"Release"
properties objeto Especifica uma lista chave-valor de propriedades adicionais somente do projeto.
targets conjunto Especifica, na ordem, a lista de destinos a serem invocados no projeto. O destino padrão do projeto é usado se nenhum for especificado.