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 cadeia (de caracteres) (Obrigatório.) Especifica o rótulo da tarefa usada na interface do usuário.
appliesTo cadeia (de caracteres) (Obrigatório.) Especifica em quais arquivos o comando pode ser executado. O uso de curingas é suportado, por exemplo: "", ".cpp", "/*.txt"
contextType cadeia (de caracteres) Valores permitidos: "personalizado", "construir", "limpar", "reconstruir". Determina onde no menu de contexto a tarefa aparecerá. Predefinido para "personalizado".
output cadeia (de caracteres) Especifica uma tag de saída para sua tarefa.
inheritEnvironments matriz 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 cadeia (de caracteres) 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 cadeia (de caracteres) Valores permitidos: "None", "ContinueOnError","IgnoreError". Especifica como prosseguir com o comando quando houver erros.
workingDirectory cadeia (de caracteres) Especifica o diretório no qual o comando será executado. O valor predefinido é o diretório de trabalho atual do projeto.
customLaunchCommand cadeia (de caracteres) 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 cadeia (de caracteres) Especifica argumentos para customLaunchCommand. (Requer customLaunchCommand.)
env Especifica uma lista chave-valor de variáveis de ambiente personalizadas. Por exemplo, "myEnv": "myVal"
commands matriz 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 cadeia (de caracteres) O nome da máquina remota. Deve corresponder a um nome de máquina no Connection Manager.
command cadeia (de caracteres) 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 cadeia (de caracteres) O diretório de trabalho atual na máquina remota.
localCopyDirectory cadeia (de caracteres) O diretório local a ser copiado para a máquina remota. O padrão é o diretório de trabalho atual.
remoteCopyDirectory cadeia (de caracteres) O diretório na máquina remota em que localCopyDirectory é copiado.
remoteCopyMethod cadeia (de caracteres) O método a ser usado para copiar. Valores permitidos: "none", "sftp", "rsync". O rsync é recomendado para projetos grandes.
remoteCopySourcesOutputVerbosity cadeia (de caracteres) Valores permitidos: "Normal","Verbose","Diagnóstico".
rsyncCommandArgs cadeia (de caracteres) O padrão é "-t --delete".
remoteCopyExclusionList matriz 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 cadeia (de caracteres) Especifica a verbosidade de saída do processo de compilação do projeto MSBuild. Valores permitidos: "Quiet", "Minimal", "Normal", "Detailed", "Diagnostic".
toolsVersion cadeia (de caracteres) 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 objecto Especifica uma lista de chave-valor das propriedades globais a serem passadas para o projeto, por exemplo, "Configuration":"Release"
properties objecto Especifica uma lista chave-valor de propriedades adicionais somente do projeto.
targets matriz Especifica, na ordem, a lista de destinos a serem invocados no projeto. O destino padrão do projeto é usado se nenhum for especificado.