共用方式為


tasks.vs.json架構參考 (C++)

若要告訴 Visual Studio 如何在 Open Folder 專案中建置原始程式碼,請新增 tasks.vs.json 檔案。 您可以在這裡定義任何任意工作,然後從 方案總管 操作功能表叫用它。 CMake 專案不會使用此檔案,因為所有建置命令都會在 CMakeLists.txt指定。 對於 CMake 以外的建置系統, tasks.vs.json 是您可以指定建置命令並叫用建置腳本的位置。 如需使用 tasks.vs.json 的一般資訊,請參閱 自定義「開啟資料夾」開發的建置和偵錯工作

工作具有 type 屬性,其可能具有四個值之一: defaultlaunchremotemsbuild。 除非需要遠端連線,否則大部分的工作都應該使用 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 boolean 指定是否要在工作內容中包含其他環境變數。 這些變數與使用 envVars 屬性定義的變數不同。 默認為 「true」。。

啟動屬性

當工作類型為 launch時,這些屬性可供使用:

屬性 類型​ 描述
command 字串 指定要啟動之進程或文稿的完整路徑。
args 陣列 指定傳遞至命令的自變數逗號分隔清單。
launchOption 字串 允許的值:「None」、“ContinueOnError”、“IgnoreError”。 指定發生錯誤時,如何繼續進行命令。
workingDirectory 字串 指定將執行命令的目錄。 預設為專案的目前工作目錄。
customLaunchCommand 字串 指定要在執行命令之前套用的全域範圍自定義。 適用於設定環境變數,例如 %PATH%。
customLaunchCommandArgs 字串 指定 customLaunchCommand 的自變數。 (需要 customLaunchCommand。)
env 指定自訂環境變數的索引鍵/值清單。 例如,“myEnv”:“myVal”
commands 陣列 指定要依序叫用的命令清單。

範例

下列工作會在資料夾中Mingw64提供makefile且已在 CppProperties.json定義時叫用make.exe,如架構參考CppProperties.json所示:

 {
  "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 專案建置輸出 verbosityAllowed 值:“Quiet”、“Minimal”、“Normal”、“Detailed”、“Diagnostic”。
toolsVersion 字串 指定要建置專案的工具組版本,例如 “2.0”、“3.5”、“4.0”、“Current”。 預設為 「Current」。。
globalProperties object 指定要傳入專案的全域屬性索引鍵/值清單,例如 “Configuration”:“Release”
properties object 只指定其他項目屬性的索引鍵/值清單。
targets 陣列 指定要依序在專案上叫用的目標清單。 如果未指定任何專案,則會使用專案的默認目標。