Delen via


tasks.vs.json schemareferentie (C++)

Voeg een tasks.vs.json-bestand toe om Visual Studio te vertellen hoe u in een Open Folder-project uw broncode bouwt. U kunt hier willekeurige taken definiëren en deze vervolgens aanroepen vanuit het contextmenu van Solution Explorer . CMake-projecten gebruiken dit bestand niet omdat alle buildopdrachten zijn opgegeven in CMakeLists.txt. Voor andere buildsystemen dan CMake, tasks.vs.json kunt u buildopdrachten opgeven en buildscripts aanroepen. Voor algemene informatie over het gebruik van tasks.vs.json, zie Build- en foutopsporingstaken aanpassen voor "Map openen" ontwikkeling.

Een taak heeft een type eigenschap die een van de vier waarden kan hebben: default, launch, remoteof msbuild. De meeste taken moeten launch gebruiken, tenzij een externe verbinding vereist is.

Standaardeigenschappen

De standaardeigenschappen zijn beschikbaar voor alle typen taken:

Vastgoed Typologie Beschrijving
taskLabel touw (Vereist.) Hiermee geeft u het taaklabel op dat in de gebruikersinterface wordt gebruikt.
appliesTo touw (Vereist.) Hiermee geeft u op op welke bestanden de opdracht kan worden uitgevoerd. Het gebruik van jokertekens wordt ondersteund, bijvoorbeeld: "", ".cpp", "/*.txt"
contextType touw Toegestane waarden: 'custom', 'build', 'clean', 'rebuild'. Bepaalt waar in het contextmenu de taak wordt weergegeven. Standaard ingesteld op 'aangepast'.
output touw Hiermee geeft u een uitvoertag voor uw taak op.
inheritEnvironments gegevensreeks Hiermee geeft u een set omgevingsvariabelen die zijn overgenomen van meerdere bronnen. U kunt variabelen definiëren in bestanden zoals CMakeSettings.json of CppProperties.json en deze beschikbaar maken voor de taakcontext. Visual Studio 16.4:: geef omgevingsvariabelen per taak op met behulp van de env.VARIABLE_NAME syntaxis. Als u een variabele wilt opheffen, stelt u deze in op 'null'.
passEnvVars booleaan Hiermee geeft u op of er aanvullende omgevingsvariabelen moeten worden opgenomen in de taakcontext. Deze variabelen verschillen van de variabelen die zijn gedefinieerd met behulp van de envVars eigenschap. De standaardwaarde is 'true'.

Eigenschapsmenu openen

Wanneer het taaktype is launch, zijn deze eigenschappen beschikbaar:

Vastgoed Typologie Beschrijving
command touw Hiermee geeft u het volledige pad op van het proces of script om te starten.
args gegevensreeks Hiermee geeft u een door komma's gescheiden lijst met argumenten die aan de opdracht worden doorgegeven.
launchOption touw Toegestane waarden: "None", "ContinueOnError","IgnoreError". Hiermee geeft u op hoe u doorgaat met de opdracht wanneer er fouten zijn.
workingDirectory touw Hiermee geeft u de map waarin de opdracht wordt uitgevoerd. De standaardinstelling is de huidige werkmap van het project.
customLaunchCommand touw Specificeert een aanpassing van de globale scope die moet worden toegepast voordat u de opdracht uitvoert. Handig voor het instellen van omgevingsvariabelen zoals %PATH%.
customLaunchCommandArgs touw Hiermee geeft u argumenten aan customLaunchCommand. (Vereist customLaunchCommand.)
env Hiermee geeft u een lijst met sleutelwaarden van aangepaste omgevingsvariabelen. Bijvoorbeeld 'myEnv': 'myVal'
commands gegevensreeks Hiermee geeft u een lijst met opdrachten die in volgorde moeten worden aangeroepen.

Voorbeeld

De volgende taken roepen make.exe aan wanneer een makefile wordt opgegeven in de map en de Mingw64 omgeving is gedefinieerd in CppProperties.json, zoals wordt weergegeven in CppProperties.json schemareferentie:

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

Deze taken kunnen worden aangeroepen vanuit het contextmenu wanneer u met de rechtermuisknop op een .cpp bestand in Solution Explorer klikt.

Eigenschappen op afstand

Externe taken worden ingeschakeld wanneer u de Linux-ontwikkeling met C++-werkbelasting installeert en een verbinding met een externe machine toevoegt met behulp van Visual Studio Connection Manager. Een externe taak voert opdrachten uit op een extern systeem en kan er ook bestanden naar kopiëren.

Wanneer het taaktype is remote, zijn deze eigenschappen beschikbaar:

Vastgoed Typologie Beschrijving
remoteMachineName touw De naam van de externe computer. Moet overeenkomen met een computernaam in Verbindingsbeheer.
command touw De opdracht om naar de externe computer te verzenden. Standaard worden opdrachten uitgevoerd in de $HOME map op het externe systeem.
remoteWorkingDirectory touw De huidige werkmap op de externe computer.
localCopyDirectory touw De lokale map die moet worden gekopieerd naar de externe computer. Standaard ingesteld op de huidige werkmap.
remoteCopyDirectory touw De map op de externe computer waarnaar localCopyDirectory wordt gekopieerd.
remoteCopyMethod touw De methode die moet worden gebruikt voor het kopiëren. Toegestane waarden: 'none', 'sftp', 'rsync'. rsync wordt aanbevolen voor grote projecten.
remoteCopySourcesOutputVerbosity touw Toegestane waarden: "Normaal", "Uitgebreid", "Diagnostisch".
rsyncCommandArgs touw De standaardwaarde is '-t --delete'.
remoteCopyExclusionList gegevensreeks Komma-gescheiden lijst van bestanden in localCopyDirectory om uit te sluiten van kopieerbewerkingen.

Voorbeeld

De volgende taak wordt weergegeven in het contextmenu wanneer u met de rechtermuisknop op main.cpp klikt in Solution Explorer. Dit is afhankelijk van een externe computer die wordt aangeroepen ubuntu in Verbindingsbeheer. De taak kopieert de huidige geopende map in Visual Studio naar de sample map op de externe computer en roept vervolgens g++ aan om het programma te bouwen.

{
  "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-eigenschappen

Wanneer het taaktype is msbuild, zijn deze eigenschappen beschikbaar:

Vastgoed Typologie Beschrijving
verbosity touw Hiermee geeft u de MSBuild projectbuilduitvoer met de volgende toegestane waarden voor detailniveau: "Quiet", "Minimal", "Normal", "Detailed", "Diagnostic".
toolsVersion touw Hiermee geeft u de hulpprogrammasetversie op voor het bouwen van het project, bijvoorbeeld '2.0', '3.5', '4.0', 'Current'. De standaardwaarde is 'Huidig'.
globalProperties Voorwerp Hiermee geeft u een lijst met sleutelwaarden op van de globale eigenschappen die moeten worden doorgegeven aan het project, bijvoorbeeld 'Configuratie':'Release'
properties Voorwerp Hiermee geeft u een sleutel-waarde lijst op van alleen aanvullende eigenschappen die bij het project horen.
targets gegevensreeks Hiermee specificeert u de lijst met doelen die achtereenvolgens binnen het project moeten worden aangeroepen. Het standaarddoel van het project wordt gebruikt als er geen is opgegeven.