tasks.vs.json架構參考 (C++)
若要告訴 Visual Studio 如何在 Open Folder 專案中建置原始程式碼,請新增 tasks.vs.json 檔案。 您可以在這裡定義任何任意工作,然後從 方案總管 操作功能表叫用它。 CMake 專案不會使用此檔案,因為所有建置命令都會在 CMakeLists.txt中指定。 對於 CMake 以外的建置系統, tasks.vs.json 是您可以指定建置命令並叫用建置腳本的位置。 如需使用 tasks.vs.json 的一般資訊,請參閱 自定義「開啟資料夾」開發的建置和偵錯工作。
工作具有 type
屬性,其可能具有四個值之一: default
、 launch
、 remote
或 msbuild
。 除非需要遠端連線,否則大部分的工作都應該使用 launch
。
默認屬性
所有工作型態都有預設屬性:
屬性 | 類型 | 描述 |
---|---|---|
taskLabel |
字串 | (必要。)指定使用者介面中使用的工作標籤。 |
appliesTo |
字串 | (必要。)指定命令可以執行的檔案。 支援使用通配符,例如:“”、“.cpp”、“/*.txt” |
contextType |
字串 | 允許的值:「custom」、“build”、“clean”、“rebuild”。 決定工作會出現在操作功能表中的位置。 默認為 「custom」。。 |
output |
字串 | 指定工作的輸出標記。 |
inheritEnvironments |
陣列 | 指定繼承自多個來源的一組環境變數。 您可以在檔案中定義變數,例如 CMakeSettings.json 或 CppProperties.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 |
陣列 | 指定要依序在專案上叫用的目標清單。 如果未指定任何專案,則會使用專案的默認目標。 |