Tasks.vs.json-Schemareferenz (C++)
Fügen Sie eine tasks.vs.json-Datei hinzu, damit Visual Studio weiß, wie Ihr Quellcode in einem „Ordner öffnen“-Projekt erstellt werden soll. Sie können in dieser Datei eine beliebige Aufgabe definieren und diesen dann über das Kontextmenü des Projektmappen-Explorers aufrufen. CMake-Projekte verwenden diese Datei in der Regel nicht, da alle Buildbefehle in CMakeLists.txt angegeben sind. Bei anderen Buildsystemen als CMake können Sie in tasks.vs.json Ihre Buildbefehle angeben und Buildskripts aufrufen. Allgemeine Informationen zur Verwendung von tasks.vs.json finden Sie unter Anpassen von Build- und Debugtasks für die Open Folder-Entwicklung.
Eine Aufgabe hat eine type
-Eigenschaft, die einen von vier Werten aufweisen kann: default
, launch
, remote
oder msbuild
. Die meisten Aufgaben sollten launch
verwenden, es sei denn, eine Remoteverbindung ist erforderlich.
Standardeigenschaften
Die Standardeigenschaften sind für alle Aufgabentypen verfügbar:
Eigenschaft | Typ | Beschreibung |
---|---|---|
taskLabel |
string | (Erforderlich.) Gibt die Aufgabenbezeichnung an, die auf der Benutzeroberfläche verwendet wird. |
appliesTo |
Zeichenfolge | (Erforderlich.) Gibt an, für welche Dateien der Befehl ausgeführt werden kann. Die Verwendung von Platzhaltern wird unterstützt, z. B. „“, „.cpp“, „/*.txt“. |
contextType |
Zeichenfolge | Zulässige Werte sind: „custom“, „build“, „clean“ und „rebuild“. Bestimmt, wo im Kontextmenü die Aufgabe angezeigt wird. Der Standardwert ist „custom“. |
output |
Zeichenfolge | Gibt ein Ausgabetag für Ihren Task an. |
inheritEnvironments |
array | Gibt mehrere Umgebungsvariablen an, die aus mehreren Quellen geerbt werden. Sie können Variablen in Dateien wie CMakeSettings.json oder CppProperties.json definieren und sie für den Aufgabenkontext verfügbar machen. Visual Studio 16.4:: Geben Sie Umgebungsvariablen pro Aufgabe mithilfe der env.VARIABLE_NAME Syntax an. Wenn Sie die Festlegung einer Variable aufheben möchten, legen Sie sie auf „null“ fest. |
passEnvVars |
boolean | Gibt an, ob zusätzliche Umgebungsvariablen für den Aufgabenkontext eingeschlossen werden sollen oder nicht. Diese Variablen unterscheiden sich von denen, die mithilfe der envVars -Eigenschaft definiert werden. Der Standardwert ist „True“. |
Starteigenschaften
Wenn der Aufgabentyp launch
ist, sind die folgenden Eigenschaften verfügbar:
Eigenschaft | Typ | Beschreibung |
---|---|---|
command |
string | Gibt den vollständigen Pfad des Prozesses oder Skripts für den Start an. |
args |
array | Gibt eine durch Kommas getrennte Liste an Argumenten an, die an den Befehl übergeben werden. |
launchOption |
Zeichenfolge | Zulässige Werte: "None", "ContinueOnError","IgnoreError". Gibt an, wie der Befehl fortgesetzt werden soll, wenn Fehler auftreten. |
workingDirectory |
Zeichenfolge | Gibt das Verzeichnis an, in dem der Befehl ausgeführt wird. Standardwert: Das aktuelle Arbeitsverzeichnis des Projekts. |
customLaunchCommand |
Zeichenfolge | Gibt eine globale Bereichsanpassung an, die angewendet werden soll, bevor der Befehl ausgeführt wird. Dies ist hilfreich, wenn Umgebungsvariablen wie %PATH% festgelegt werden sollen. |
customLaunchCommandArgs |
Zeichenfolge | Gibt Argumente für customLaunchCommand an. (Erfordert customLaunchCommand .) |
env |
Gibt eine Schlüssel-Wert-Liste benutzerdefinierter Umgebungsvariablen an. Beispiel: „myEnv“: „myVal“. | |
commands |
array | Gibt eine Liste von Befehlen an, die in Reihenfolge aufgerufen werden sollen. |
Beispiel
Die folgenden Aufgaben rufen make.exe auf, wenn eine Makefile im Ordner bereitgestellt wird und die Mingw64
-Umgebung in CppProperties.json definiert wurde. Sehen Sie sich dazu die CppProperties.json-Schemareferenz an:
{
"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"]
}
]
}
Die Aufgaben können im Kontextmenü aufgerufen werden, wenn Sie mit der rechten Maustaste auf eine CPP-Datei im Projektmappen-Explorer klicken.
Remoteeigenschaften
Remoteaufgaben sind möglich, wenn Sie die Workload „Linux Entwicklung mit C++“ installieren und eine Verbindung zu einem Remotecomputer hinzufügen, indem Sie den Verbindungs-Manager in Visual Studio verwenden. Eine Remoteaufgabe führt Befehle auf einem Remotesystem aus und kann auch Dateien dorthin kopieren.
Wenn der Aufgabentyp remote
ist, sind die folgenden Eigenschaften verfügbar:
Eigenschaft | Typ | Beschreibung |
---|---|---|
remoteMachineName |
string | Der Name des Remotecomputers. Dieser muss einem Computername im Verbindungs-Manager entsprechen. |
command |
Zeichenfolge | Der Befehl, um den Remotecomputer zu senden. Standardmäßig werden Befehle im $HOME-Verzeichnis auf dem Remotesystem ausgeführt. |
remoteWorkingDirectory |
Zeichenfolge | Das aktuelle Arbeitsverzeichnis auf dem Remotecomputer. |
localCopyDirectory |
Zeichenfolge | Das lokale Verzeichnis, das auf den Remotecomputer kopiert werden soll. Der Standardwert ist das aktuelle Arbeitsverzeichnis. |
remoteCopyDirectory |
Zeichenfolge | Das Verzeichnis auf dem Remotecomputer, in das localCopyDirectory kopiert wird. |
remoteCopyMethod |
Zeichenfolge | Die Methode, die für den Kopiervorgang verwendet wird. Zulässige Werte sind: „none“, „sftp“, „rsync“. „rsync“ wird für große Projekte empfohlen. |
remoteCopySourcesOutputVerbosity |
Zeichenfolge | Zulässige Werte: "Normal","Verbose","Diagnostic". |
rsyncCommandArgs |
Zeichenfolge | Der Standard ist „-t --delete“. |
remoteCopyExclusionList |
array | Durch Kommas getrennte Liste von Dateien in localCopyDirectory , die bei Kopiervorgängen ausgeschlossen werden sollen. |
Beispiel
Die folgende Aufgabe wird im Kontextmenü angezeigt, wenn Sie mit der rechten Maustaste auf main.cpp im Projektmappen-Explorer klicken. Die Aufgabe hängt von einem Remotecomputer namens ubuntu
im Verbindungs-Manager ab. Die Aufgabe kopiert den aktuellen Ordner in Visual Studio in das sample
-Verzeichnis auf dem Remotecomputer und ruft dann g++ ab, um das Programm zu erstellen.
{
"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-Eigenschaften
Wenn der Aufgabentyp msbuild
ist, sind die folgenden Eigenschaften verfügbar:
Eigenschaft | Typ | Beschreibung |
---|---|---|
verbosity |
string | Gibt die VerbosityAllowed-Werte des MSBuild-Projekts an: "Quiet", "Minimal", "Normal", "Detailed", "Diagnostic". |
toolsVersion |
Zeichenfolge | Gibt die Toolsetversion an, mit der das Projekt erstellt werden soll, z. B. „2.0“, „3.5“, „4.0“, „Current“. Der Standardwert ist „Current“. |
globalProperties |
Objekt | Gibt eine Schlüssel-Wert-Liste der globalen Eigenschaften an, die in das Projekt übergeben werden sollen, z. B. „Configuration“:„Release“. |
properties |
Objekt | Gibt eine Schlüssel-Wert-Liste zusätzlicher nur für das Projekt geltender Eigenschaften an. |
targets |
array | Gibt die Liste der Ziele an, die im Projekt der Reihe nach aufgerufen werden sollen. Das Standardziel des Projekts wird verwendet, wenn keines angegeben ist. |