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
, , launch
remote
ou 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. |