dokumentacja schematu tasks.vs.json (C++)
Aby poinformować program Visual Studio, jak skompilować kod źródłowy w projekcie Otwórz folder, dodaj plik tasks.vs.json . W tym miejscu można zdefiniować dowolne zadanie, a następnie wywołać je z menu kontekstowego Eksplorator rozwiązań. Projekty CMake nie używają tego pliku, ponieważ wszystkie polecenia kompilacji są określone w CMakeLists.txt. W przypadku systemów kompilacji innych niż CMake tasks.vs.json można określić polecenia kompilacji i wywołać skrypty kompilacji. Aby uzyskać ogólne informacje na temat używania tasks.vs.json, zobacz Dostosowywanie zadań kompilacji i debugowania na potrzeby programowania "Otwórz folder".
Zadanie ma type
właściwość, która może mieć jedną z czterech wartości: default
, , launch
remote
lub msbuild
. Większość zadań powinna być używana launch
, chyba że wymagane jest połączenie zdalne.
Właściwości domyślne
Właściwości domyślne są dostępne we wszystkich typach zadań:
Właściwość | Type | opis |
---|---|---|
taskLabel |
string | (Wymagane). Określa etykietę zadania używaną w interfejsie użytkownika. |
appliesTo |
string | (Wymagane). Określa, na których plikach można wykonać polecenie. Użycie symboli wieloznacznych jest obsługiwane, na przykład: "", ".cpp", "/*.txt" |
contextType |
string | Dozwolone wartości: "custom", "build", "clean", "rebuild". Określa, gdzie w menu kontekstowym pojawi się zadanie. Wartość domyślna to "custom". |
output |
string | Określa tag wyjściowy zadania. |
inheritEnvironments |
tablica | Określa zestaw zmiennych środowiskowych dziedziczony z wielu źródeł. Zmienne można definiować w plikach, takich jak CMakeSettings.json lub CppProperties.json i udostępniać je kontekstowi zadania. Visual Studio 16.4:: Określ zmienne środowiskowe dla poszczególnych zadań przy użyciu env.VARIABLE_NAME składni . Aby usunąć ustawienie zmiennej, ustaw ją na wartość "null". |
passEnvVars |
boolean | Określa, czy należy uwzględnić dodatkowe zmienne środowiskowe w kontekście zadania. Te zmienne różnią się od tych zdefiniowanych przy użyciu envVars właściwości . Wartość domyślna to "true". |
Uruchamianie właściwości
Gdy typ zadania to launch
, są dostępne następujące właściwości:
Właściwość | Type | opis |
---|---|---|
command |
string | Określa pełną ścieżkę procesu lub skryptu do uruchomienia. |
args |
tablica | Określa rozdzielaną przecinkami listę argumentów przekazanych do polecenia. |
launchOption |
string | Dozwolone wartości: "None", "ContinueOnError", "IgnoreError". Określa, jak kontynuować wykonywanie polecenia, gdy występują błędy. |
workingDirectory |
string | Określa katalog, w którym zostanie uruchomione polecenie. Domyślnie jest to bieżący katalog roboczy projektu. |
customLaunchCommand |
string | Określa dostosowanie zakresu globalnego do zastosowania przed wykonaniem polecenia. Przydatne do ustawiania zmiennych środowiskowych, takich jak %PATH%. |
customLaunchCommandArgs |
string | Określa argumenty customLaunchCommand. (Wymaga customLaunchCommand .) |
env |
Określa listę klucz-wartość niestandardowych zmiennych środowiskowych. Na przykład "myEnv": "myVal" | |
commands |
tablica | Określa listę poleceń, które mają być wywoływane w kolejności. |
Przykład
Następujące zadania wywołują make.exe, gdy plik make jest udostępniany w folderze, a Mingw64
środowisko zostało zdefiniowane w CppProperties.json, jak pokazano w CppProperties.json odwołania do schematu:
{
"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"]
}
]
}
Te zadania można wywołać z menu kontekstowego po kliknięciu prawym przyciskiem myszy pliku .cpp w Eksplorator rozwiązań.
Właściwości zdalne
Zadania zdalne są włączane podczas instalowania programowania systemu Linux za pomocą obciążenia C++ i dodawania połączenia do maszyny zdalnej przy użyciu programu Visual Studio Menedżer połączeń. Zadanie zdalne uruchamia polecenia w systemie zdalnym i może również kopiować do niego pliki.
Gdy typ zadania to remote
, są dostępne następujące właściwości:
Właściwość | Type | opis |
---|---|---|
remoteMachineName |
string | Nazwa maszyny zdalnej. Musi być zgodna z nazwą maszyny w Menedżer połączeń. |
command |
string | Polecenie do wysłania do maszyny zdalnej. Domyślnie polecenia są wykonywane w katalogu $HOME w systemie zdalnym. |
remoteWorkingDirectory |
string | Bieżący katalog roboczy na maszynie zdalnej. |
localCopyDirectory |
string | Katalog lokalny do skopiowania na maszynę zdalną. Domyślnie jest to bieżący katalog roboczy. |
remoteCopyDirectory |
string | Katalog na maszynie zdalnej, do którego localCopyDirectory jest kopiowany. |
remoteCopyMethod |
string | Metoda do skopiowania. Dozwolone wartości: "none", "sftp", "rsync". Funkcja rsync jest zalecana w przypadku dużych projektów. |
remoteCopySourcesOutputVerbosity |
string | Dozwolone wartości: "Normal","Verbose","Diagnostic". |
rsyncCommandArgs |
string | Wartość domyślna to "-t --delete". |
remoteCopyExclusionList |
tablica | Rozdzielona przecinkami lista plików do localCopyDirectory wykluczenia z operacji kopiowania. |
Przykład
Następujące zadanie pojawi się w menu kontekstowym po kliknięciu prawym przyciskiem myszy main.cpp w Eksplorator rozwiązań. Zależy to od maszyny zdalnej wywoływanej ubuntu
w Menedżer połączeń. Zadanie kopiuje bieżący otwarty folder w programie Visual Studio do sample
katalogu na maszynie zdalnej, a następnie wywołuje bibliotekę g++ w celu skompilowania programu.
{
"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"
}
]
}
właściwości programu MSBuild
Gdy typ zadania to msbuild
, są dostępne następujące właściwości:
Właściwość | Type | opis |
---|---|---|
verbosity |
string | Określa dane wyjściowe kompilacji projektu MSBuild verbosityAllowed wartości: "Quiet", "Minimal", "Normal", "Detailed", "Diagnostic". |
toolsVersion |
string | Określa wersję zestawu narzędzi do skompilowania projektu, na przykład "2.0", "3.5", "4.0", "Current". Wartość domyślna to "Current". |
globalProperties |
obiekt | Określa listę klucz-wartość właściwości globalnych, które mają być przekazywane do projektu, na przykład "Configuration":"Release" |
properties |
obiekt | Określa listę klucz-wartość dodatkowych właściwości tylko projektu. |
targets |
tablica | Określa listę obiektów docelowych, które mają być wywoływane w kolejności w projekcie. Domyślny element docelowy projektu jest używany, jeśli żaden z nich nie zostanie określony. |