Udostępnij za pomocą


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, , launchremotelub 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ść Typ opis
taskLabel sznurek (Wymagane). Określa etykietę zadania używaną w interfejsie użytkownika.
appliesTo sznurek (Wymagane). Określa, na których plikach można wykonać polecenie. Użycie symboli wieloznacznych jest obsługiwane, na przykład: "", ".cpp", "/*.txt"
contextType sznurek Dozwolone wartości: "custom", "build", "clean", "rebuild". Określa, gdzie w menu kontekstowym pojawi się zadanie. Wartość domyślna to "custom".
output sznurek 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 typ logiczny (boolowski) 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ść Typ opis
command sznurek Określa pełną ścieżkę procesu lub skryptu do uruchomienia.
args tablica Określa rozdzielaną przecinkami listę argumentów przekazanych do polecenia.
launchOption sznurek Dozwolone wartości: "None", "ContinueOnError", "IgnoreError". Określa, jak kontynuować wykonywanie polecenia, gdy występują błędy.
workingDirectory sznurek Określa katalog, w którym zostanie uruchomione polecenie. Domyślnie jest to bieżący katalog roboczy projektu.
customLaunchCommand sznurek Określa dostosowanie zakresu globalnego do zastosowania przed wykonaniem polecenia. Przydatne do ustawiania zmiennych środowiskowych, takich jak %PATH%.
customLaunchCommandArgs sznurek 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ść Typ opis
remoteMachineName sznurek Nazwa maszyny zdalnej. Musi być zgodna z nazwą maszyny w Menedżer połączeń.
command sznurek Polecenie do wysłania do maszyny zdalnej. Domyślnie polecenia są wykonywane w katalogu $HOME w systemie zdalnym.
remoteWorkingDirectory sznurek Bieżący katalog roboczy na maszynie zdalnej.
localCopyDirectory sznurek Katalog lokalny do skopiowania na maszynę zdalną. Domyślnie jest to bieżący katalog roboczy.
remoteCopyDirectory sznurek Katalog na maszynie zdalnej, do którego localCopyDirectory jest kopiowany.
remoteCopyMethod sznurek Metoda do skopiowania. Dozwolone wartości: "none", "sftp", "rsync". Funkcja rsync jest zalecana w przypadku dużych projektów.
remoteCopySourcesOutputVerbosity sznurek Dozwolone wartości: "Normal","Verbose","Diagnostic".
rsyncCommandArgs sznurek 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ść Typ opis
verbosity sznurek Określa dane wyjściowe kompilacji projektu MSBuild verbosityAllowed wartości: "Quiet", "Minimal", "Normal", "Detailed", "Diagnostic".
toolsVersion sznurek 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.