Compartir a través de


Referencia de esquema tasks.vs.json (C++)

Para indicar a Visual Studio cómo compilar el código fuente en un proyecto de carpeta abierta, agregue un archivo tasks.vs.json. Aquí se puede definir cualquier tarea arbitraria y luego invocarla desde el menú contextual del Explorador de soluciones. Los proyectos de CMake no usan este archivo porque todos los comandos de compilación se especifican en CMakeLists.txt. Para los sistemas de compilación diferentes de CMake, tasks.vs.json es donde se pueden especificar los comandos de compilación e invocar los scripts de compilación. Para obtener información general sobre el uso de tasks.vs.json, vea Personalización de las tareas de compilación y depuración para el desarrollo de "Abrir carpeta".

Una tarea cuenta con una propiedad type que puede tener uno de estos cuatro valores: default, launch, remote o msbuild. La mayoría de las tareas deben usar launch a menos que se requiera una conexión remota.

Propiedades predeterminadas

Las propiedades predeterminadas están disponibles en todos los tipos de tareas:

Propiedad Tipo Descripción
taskLabel cuerda / cadena (Obligatorio). Especifica la etiqueta de tarea usada en la interfaz de usuario.
appliesTo cuerda / cadena (Obligatorio). Especifica los archivos en los que se puede realizar el comando. Se admite el uso de caracteres comodín como, por ejemplo: "", ".cpp" y "/*.txt"
contextType cuerda / cadena Valores permitidos: "custom", "build", "clean" y "rebuild". Determina dónde aparecerá la tarea en el menú contextual. El valor predeterminado es "custom".
output cuerda / cadena Especifica una etiqueta de salida para la tarea.
inheritEnvironments arreglo Especifica un conjunto de variables de entorno heredado de varios orígenes. Se pueden definir variables en archivos como CMakeSettings.json o CppProperties.json y hacer que estén disponibles en el contexto de la tarea. Visual Studio 16.4:: especifique variables de entorno por tarea mediante la env.VARIABLE_NAME sintaxis . Para anular la configuración de una variable, establézcala en "NULL".
passEnvVars booleano Especifica si se van a incluir o no variables de entorno adicionales en el contexto de la tarea. Estas variables son diferentes de las definidas mediante la propiedad envVars. El valor predeterminado es "true".

Propiedades de inicio

Cuando el tipo de tarea es launch, estas propiedades están disponibles:

Propiedad Tipo Descripción
command cuerda / cadena Especifica la ruta de acceso completa del proceso o script que se va a iniciar.
args arreglo Especifica una lista separada por comas de argumentos que se pasan al comando.
launchOption cuerda / cadena Valores permitidos: "None", "ContinueOnError","IgnoreError". Especifica cómo continuar con el comando cuando hay errores.
workingDirectory cuerda / cadena Especifica el directorio en el que se ejecutará el comando. El valor predeterminado es el directorio de trabajo actual del proyecto.
customLaunchCommand cuerda / cadena Especifica una personalización de ámbito global que se va a aplicar antes de ejecutar el comando. Resulta útil para establecer variables de entorno, como %PATH%.
customLaunchCommandArgs cuerda / cadena Especifica los argumentos en customLaunchCommand. (Requiere customLaunchCommand).
env Especifica una lista de pares clave-valor de variables de entorno personalizadas. Por ejemplo, "myEnv": "myVal".
commands arreglo Especifica una lista de comandos que se invocarán en orden.

Ejemplo

Las tareas siguientes invocan make.exe cuando se proporciona un archivo Make en la carpeta y el entorno de Mingw64 se ha definido en CppProperties.json, tal como se muestra en la referencia de esquema de 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"]
    }
  ]
}

Estas tareas se pueden invocar desde el menú contextual al hacer clic con el botón derecho en un archivo .cpp en el Explorador de soluciones.

Propiedades remotas

Las tareas remotas se habilitan cuando se instala la carga de trabajo Desarrollo para Linux con C++ y se agrega una conexión a una máquina remota mediante el Administrador de conexiones de Visual Studio. Una tarea remota ejecuta comandos en un sistema remoto y también puede copiar archivos en este.

Cuando el tipo de tarea es remote, estas propiedades están disponibles:

Propiedad Tipo Descripción
remoteMachineName cuerda / cadena Nombre de la máquina remota. Debe coincidir con el nombre de una máquina en el Administrador de conexiones.
command cuerda / cadena Comando que se va a enviar a la máquina remota. De forma predeterminada, los comandos se ejecutan en el directorio $HOME del sistema remoto.
remoteWorkingDirectory cuerda / cadena Directorio de trabajo actual en la máquina remota.
localCopyDirectory cuerda / cadena Directorio local que se va a copiar en la máquina remota. El valor predeterminado es el directorio de trabajo actual.
remoteCopyDirectory cuerda / cadena Directorio de la máquina remota en el que se copia localCopyDirectory.
remoteCopyMethod cuerda / cadena Método que se va a usar para copiar. Valores permitidos: "none", "sftp" y "rsync". Para proyectos de gran tamaño se recomienda rsync.
remoteCopySourcesOutputVerbosity cuerda / cadena Valores permitidos: "Normal","Verbose","Diagnostic".
rsyncCommandArgs cuerda / cadena El valor predeterminado es "-t --delete".
remoteCopyExclusionList arreglo Lista de archivos separados por comas en localCopyDirectory que se van a excluir de las operaciones de copia.

Ejemplo

La tarea siguiente aparecerá en el menú contextual al hacer clic con el botón derecho en main.cpp en el Explorador de soluciones. Depende de una máquina remota llamada ubuntu en el Administrador de conexiones. La tarea copia la carpeta abierta actual en Visual Studio en el directorio sample de la máquina remota y, después, invoca g++ para compilar el 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"
    }
  ]
}

Propiedades de MSBuild

Cuando el tipo de tarea es msbuild, estas propiedades están disponibles:

Propiedad Tipo Descripción
verbosity cuerda / cadena Especifica los valores detallados de la salida de compilación del proyecto de MSBuildAllowed: "Quiet", "Minimal", "Normal", "Detailed", "Diagnostic".
toolsVersion cuerda / cadena Especifica la versión del conjunto de herramientas para compilar el proyecto, por ejemplo "2.0", "3.5", "4.0" y "Current". El valor predeterminado es "Current".
globalProperties objeto Especifica una lista de valores de clave de las propiedades globales que se van a pasar al proyecto como, por ejemplo, "Configuration":"Release".
properties objeto Especifica una lista de valores de clave de propiedades de solo proyecto adicionales.
targets arreglo Especifica la lista de destinos que se van a invocar, en orden, en el proyecto. Si no se especifica ninguno, se usa el destino predeterminado del proyecto.