Partager via


référence de schéma tasks.vs.json (C++)

Pour indiquer à Visual Studio comment générer votre code source dans un projet Open Folder, ajoutez un fichier tasks.vs.json . Vous pouvez définir n’importe quelle tâche arbitraire ici, puis l’appeler à partir du menu contextuel Explorateur de solutions. Les projets CMake n’utilisent pas ce fichier, car toutes les commandes de build sont spécifiées dans CMakeLists.txt. Pour les systèmes de génération autres que CMake, tasks.vs.json est l’endroit où vous pouvez spécifier des commandes de build et appeler des scripts de build. Pour obtenir des informations générales sur l’utilisation de tasks.vs.json, consultez Personnaliser les tâches de génération et de débogage pour le développement « Ouvrir le dossier ».

Une tâche a une type propriété qui peut avoir l’une des quatre valeurs suivantes : default, , launchremoteou msbuild. La plupart des tâches doivent utiliser launch , sauf si une connexion à distance est requise.

Propriétés par défaut

Les propriétés par défaut sont disponibles sur tous les types de tâches :

Propriété Type Description
taskLabel string (Obligatoire.) Spécifie l’étiquette de tâche utilisée dans l’interface utilisateur.
appliesTo string (Obligatoire.) Spécifie les fichiers sur lesquels la commande peut être exécutée. L’utilisation de caractères génériques est prise en charge, par exemple : « », « .cpp », « /*.txt »
contextType string Valeurs autorisées : « custom », « build », « clean », « rebuild ». Détermine où, dans le menu contextuel, la tâche s’affiche. La valeur par défaut est « personnalisée ».
output string Spécifie une balise de sortie à votre tâche.
inheritEnvironments tableau Spécifie un ensemble de variables d’environnement héritées de plusieurs sources. Vous pouvez définir des variables dans des fichiers tels que CMakeSettings.json ou CppProperties.json et les mettre à la disposition du contexte de tâche. Visual Studio 16.4 :: spécifiez des variables d’environnement par tâche à l’aide de la env.VARIABLE_NAME syntaxe. Pour annuler la définition d’une variable, définissez-la sur « null ».
passEnvVars booléen Spécifie s’il faut inclure ou non des variables d’environnement supplémentaires dans le contexte de tâche. Ces variables sont différentes de celles définies à l’aide de la envVars propriété. La valeur par défaut est « true ».

Propriétés de lancement

Lorsque le type de tâche est launch, ces propriétés sont disponibles :

Propriété Type Description
command string Spécifie le chemin complet du processus ou du script à lancer.
args tableau Spécifie une liste séparée par des virgules d’arguments passés à la commande.
launchOption string Valeurs autorisées : « None », « ContinueOnError », « IgnoreError ». Spécifie comment procéder à la commande en cas d’erreurs.
workingDirectory string Spécifie le répertoire dans lequel la commande sera exécutée. La valeur par défaut est le répertoire de travail actuel du projet.
customLaunchCommand string Spécifie une personnalisation de l’étendue globale à appliquer avant d’exécuter la commande. Utile pour définir des variables d’environnement comme %PATH%.
customLaunchCommandArgs string Spécifie des arguments pour customLaunchCommand. (Nécessite customLaunchCommand.)
env Spécifie une liste clé-valeur des variables d’environnement personnalisées. Par exemple, « myEnv » : « myVal »
commands tableau Spécifie une liste de commandes à appeler dans l’ordre.

Exemple

Les tâches suivantes appellent make.exe lorsqu’un makefile est fourni dans le dossier et que l’environnement Mingw64 a été défini dans CppProperties.json, comme indiqué dans CppProperties.json référence de schéma :

 {
  "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"]
    }
  ]
}

Ces tâches peuvent être appelées à partir du menu contextuel lorsque vous cliquez avec le bouton droit sur un fichier .cpp dans Explorateur de solutions.

Propriétés distantes

Les tâches distantes sont activées lorsque vous installez le développement Linux avec la charge de travail C++ et ajoutez une connexion à une machine distante à l’aide du Gestionnaire des connexions Visual Studio. Une tâche distante exécute des commandes sur un système distant et peut également copier des fichiers vers celui-ci.

Lorsque le type de tâche est remote, ces propriétés sont disponibles :

Propriété Type Description
remoteMachineName string Nom de l’ordinateur distant. Doit correspondre à un nom d’ordinateur dans Gestionnaire des connexions.
command string Commande à envoyer à l’ordinateur distant. Par défaut, les commandes sont exécutées dans le répertoire $HOME sur le système distant.
remoteWorkingDirectory string Répertoire de travail actuel sur l’ordinateur distant.
localCopyDirectory string Répertoire local à copier sur l’ordinateur distant. Par défaut, il s’agit du répertoire de travail actuel.
remoteCopyDirectory string Répertoire sur l’ordinateur distant dans lequel localCopyDirectory est copié.
remoteCopyMethod string Méthode à utiliser pour la copie. Valeurs autorisées : « none », « sftp », « rsync ». rsync est recommandé pour les grands projets.
remoteCopySourcesOutputVerbosity string Valeurs autorisées : « Normal », « Verbose », « Diagnostic ».
rsyncCommandArgs string La valeur par défaut est « -t --delete ».
remoteCopyExclusionList tableau Liste de fichiers séparés par des virgules dans localCopyDirectory laquelle exclure des opérations de copie.

Exemple

La tâche suivante s’affiche dans le menu contextuel lorsque vous cliquez avec le bouton droit sur main.cpp dans Explorateur de solutions. Cela dépend d’un ordinateur distant appelé ubuntu dans Gestionnaire des connexions. La tâche copie le dossier ouvert actuel dans Visual Studio dans le sample répertoire de l’ordinateur distant, puis appelle g++ pour générer le programme.

{
  "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 (propriétés)

Lorsque le type de tâche est msbuild, ces propriétés sont disponibles :

Propriété Type Description
verbosity string Spécifie les valeurs verbosityAllowed de sortie du projet MSBuild : « Quiet », « Minimal », « Normal », « Detailed », « Diagnostic ».
toolsVersion string Spécifie la version de l’ensemble d’outils pour générer le projet, par exemple « 2.0 », « 3.5 », « 4.0 », « Current ». La valeur par défaut est « Current ».
globalProperties object Spécifie une liste clé-valeur des propriétés globales à transmettre au projet, par exemple « Configuration » : « Release »
properties object Spécifie une liste clé-valeur de propriétés de projet supplémentaires uniquement.
targets tableau Spécifie la liste des cibles à appeler, dans l’ordre, sur le projet. La cible par défaut du projet est utilisée si aucune n’est spécifiée.