tasks.vs.json スキーマ リファレンス (C++)

"フォルダーを開く" プロジェクトのソース コードをビルドする方法を Visual Studio に伝えるには、tasks.vs.json ファイルを追加します。 ここでは任意のタスクを定義し、ソリューション エクスプローラーのコンテキスト メニューから呼び出すことができます。 すべてのビルド コマンドは CMakeLists.txt で指定されるため、CMake プロジェクトにはこのファイルが使用されません。 CMake 以外のビルド システムでは、tasks.vs.json でビルド コマンドを指定し、ビルド スクリプトを呼び出すことができます。 tasks.vs.json の使用の全般的な情報については、「"フォルダーを開く" の開発のためにビルド タスクとデバッグ タスクをカスタマイズする」を参照してください。

タスクには、defaultlaunchremote、または msbuild という 4 つの値のいずれかを持つ type プロパティがあります。 リモート接続が必要な場合を除き、ほとんどのタスクでは launch を使用する必要があります。

既定のプロパティ

既定のプロパティは、すべての種類のタスクで使用できます。

プロパティ タイプ Description
taskLabel string (必須)。)ユーザー インターフェイスで使用されるタスク ラベルを指定します。
appliesTo string (必須)。)コマンドを実行できるファイルを指定します。 ワイルドカードの使用はサポートされています (例: ""、".cpp"、"/*.txt")。
contextType string 使用できる値: "custom"、"build"、"clean"、"rebuild"。 タスクが表示されるコンテキスト メニュー内の場所を指定します。 既定値は "custom" です。
output string タスクへの出力タグを指定します。
inheritEnvironments array 複数のソースから継承された環境変数のセットを指定します。 CMakeSettings.jsonCppProperties.json などのファイルで変数を定義し、タスク コンテキストに使用できるようにします。 Visual Studio 16.4:env.VARIABLE_NAME 構文を使用して、タスクごとに環境変数を指定します。 変数の設定を解除するには、変数を "null" に設定します。
passEnvVars boolean タスク コンテキストに追加の環境変数を含めるかどうかを指定します。 これらの変数は、envVars プロパティを使用して定義された変数とは異なります。 既定値は "true" です。

launch のプロパティ

タスクの種類が launch の場合、次のプロパティを使用できます。

プロパティ タイプ Description
command string 起動するプロセスまたはスクリプトの完全なパスを指定します。
args array コマンドに渡される引数のコンマ区切りのリストを指定します。
launchOption string 使用できる値: "None"、"ContinueOnError"、"IgnoreError"。 エラーが発生したときにコマンドを続行する方法を指定します。
workingDirectory string コマンドを実行するディレクトリを指定します。 既定値はプロジェクトの現在の作業ディレクトリです。
customLaunchCommand string コマンドを実行する前に適用するグローバル スコープのカスタマイズを指定します。 %PATH% などの環境変数の設定に役立ちます。
customLaunchCommandArgs string customLaunchCommand の引数を指定します (customLaunchCommand は必須です)。
env カスタム環境変数のキーと値のリストを指定します。 例: "myEnv": "myVal"
commands array 順番に呼び出すコマンドのリストを指定します。

次のタスクでは、CppProperties.json スキーマ リファレンスに示すように、フォルダーにメイクファイルが指定され、Mingw64 環境が CppProperties.json で定義されている場合に、make.exe を呼び出します。

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

ソリューション エクスプローラー.cpp ファイルを右クリックすると、コンテキスト メニューからこれらのタスクを呼び出すことができます。

remote のプロパティ

C++ ワークロードを含む Linux 開発をインストールし、Visual Studio 接続マネージャーを使用してリモート マシンへの接続を追加すると、リモート タスクが有効になります。 リモート タスクを使用すると、リモート システム上でコマンドを実行できます。また、そこにファイルをコピーすることもできます。

タスクの種類が remote の場合、次のプロパティを使用できます。

プロパティ タイプ Description
remoteMachineName string リモート マシンの名前。 接続マネージャーのマシン名と一致している必要があります。
command string リモート マシンに送信するコマンド。 既定では、コマンドはリモート システム上の $HOME ディレクトリで実行されます。
remoteWorkingDirectory string リモート マシンの現在の作業ディレクトリ。
localCopyDirectory string リモート マシンにコピーするローカル ディレクトリ。 既定値は現在の作業ディレクトリです。
remoteCopyDirectory string localCopyDirectory がコピーされるリモート マシン上のディレクトリ。
remoteCopyMethod string コピーに使用するメソッド。 使用できる値: "none"、"sftp"、"rsync"。 大規模なプロジェクトの場合は rsync をお勧めします。
remoteCopySourcesOutputVerbosity string 使用できる値: "Normal"、"Verbose"、"Diagnostic"。
rsyncCommandArgs string 既定値は "-t --delete" です。
remoteCopyExclusionList array コピー操作から除外する localCopyDirectory 内のファイルのコンマ区切りリスト。

ソリューション エクスプローラーmain.cpp を右クリックすると、次のタスクがコンテキスト メニューに表示されます。 これは、接続マネージャーubuntu というリモート マシンによって変わります。 このタスクによって、Visual Studio で現在開いているフォルダーがリモート マシンの sample ディレクトリにコピーされ、g++ が呼び出され、プログラムがビルドされます。

{
  "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 プロパティ

タスクの種類が msbuild の場合、次のプロパティを使用できます。

プロパティ タイプ Description
verbosity string MSBuild プロジェクト ビルドの出力 verbosityAllowed 値を指定します。"Quiet"、"Minimal"、"Normal"、"Detailed"、"Diagnostic" です。
toolsVersion string プロジェクトをビルドするツールセットのバージョンを指定します (例: "2.0"、"3.5"、"4.0"、"Current")。 既定値は "Current" です。
globalProperties object プロジェクトに渡すグローバル プロパティのキーと値のリストを指定します (例: "Configuration":"Release")
properties object 追加のプロジェクトのみのプロパティのキーと値のリストを指定します。
targets array プロジェクトで呼び出すターゲットのリストを順番に指定します。 何も指定されていない場合は、プロジェクトの既定のターゲットが使用されます。