次の方法で共有


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

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

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

既定のプロパティ

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

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

起動プロパティ

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

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

次のタスクでは、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 ファイルを右クリックすると、コンテキスト メニューからこれらのタスクを呼び出すことができます。

リモートプロパティ

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

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

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

プロパティ タイプ 説明
verbosity 文字列 MSBuild プロジェクト ビルドの出力の詳細度 (verbosity) の許可された値を指定します。「Quiet」、「Minimal」、「Normal」、「Detailed」、「Diagnostic」です。
toolsVersion 文字列 プロジェクトをビルドするツールセットのバージョンを指定します (例: "2.0"、"3.5"、"4.0"、"Current")。 既定値は "Current" です。
globalProperties オブジェクト プロジェクトに渡すグローバル プロパティのキーと値のリストを指定します (例: "Configuration":"Release")
properties オブジェクト 追加のプロジェクトのみのプロパティのキーと値のリストを指定します。
targets アレイ プロジェクトで呼び出すターゲットのリストを順番に指定します。 何も指定されていない場合は、プロジェクトの既定のターゲットが使用されます。