tasks.vs.json şema başvurusu (C++)
Visual Studio'ya kaynak kodunuzu bir Klasör Aç projesinde nasıl oluşturacaklarını bildirmek için bir tasks.vs.json dosyası ekleyin. Herhangi bir rastgele görevi burada tanımlayabilir ve ardından Çözüm Gezgini bağlam menüsünden çağırabilirsiniz. Tüm derleme komutları CMakeLists.txt belirtildiğinden CMake projeleri bu dosyayı kullanmaz. CMake dışındaki derleme sistemleri için tasks.vs.json, derleme komutlarını belirtebileceğiniz ve derleme betiklerini çağırabileceğiniz yerdir. tasks.vs.json kullanma hakkında genel bilgi için bkz. "Klasör Aç" geliştirmesi için derleme ve hata ayıklama görevlerini özelleştirme.
Bir görevin dört değerden birine sahip olabilecek bir type
özelliği vardır: default
, launch
, remote
veya msbuild
. Uzak bağlantı gerekmediği sürece çoğu görev kullanılmalıdır launch
.
Varsayılan Özellikler
Varsayılan özellikler tüm görev türlerinde kullanılabilir:
Özellik | Türü | Veri Akışı Açıklaması |
---|---|---|
taskLabel |
Dize | (Gerekli.) Kullanıcı arabiriminde kullanılan görev etiketini belirtir. |
appliesTo |
Dize | (Gerekli.) Komutun hangi dosyalarda gerçekleştirilebileceğini belirtir. Joker karakterlerin kullanımı desteklenir, örneğin: "", ".cpp", "/*.txt" |
contextType |
Dize | İzin verilen değerler: "custom", "build", "clean", "rebuild". Görevin bağlam menüsünde nerede görüneceğini belirler. Varsayılan olarak "özel" olur. |
output |
Dize | Göreviniz için bir çıkış etiketi belirtir. |
inheritEnvironments |
dizi | Birden çok kaynaktan devralınan ortam değişkenleri kümesini belirtir. CMakeSettings.json veya CppProperties.json gibi dosyalarda değişkenler tanımlayabilir ve bunları görev bağlamında kullanılabilir hale getirebilirsiniz. Visual Studio 16.4:: Söz dizimini env.VARIABLE_NAME kullanarak görev başına ortam değişkenlerini belirtin. Bir değişkenin kümesini açmak için bunu "null" olarak ayarlayın. |
passEnvVars |
boolean | Görev bağlamı için ek ortam değişkenleri eklenip eklenmeyeceğini belirtir. Bu değişkenler, özelliği kullanılarak envVars tanımlananlardan farklıdır. Varsayılan olarak "true" olur. |
Başlatma özellikleri
Görev türü olduğunda launch
, şu özellikler kullanılabilir:
Özellik | Türü | Veri Akışı Açıklaması |
---|---|---|
command |
Dize | Başlatacak işlemin veya betiğin tam yolunu belirtir. |
args |
dizi | Komuta geçirilen bağımsız değişkenlerin virgülle ayrılmış listesini belirtir. |
launchOption |
Dize | İzin verilen değerler: "None", "ContinueOnError","IgnoreError". Hatalar olduğunda komutuyla nasıl ilerleyeceklerini belirtir. |
workingDirectory |
Dize | Komutun çalıştırılacağı dizini belirtir. Varsayılan olarak projenin geçerli çalışma dizinine geçer. |
customLaunchCommand |
Dize | Komutu yürütmeden önce uygulanacak genel kapsam özelleştirmesini belirtir. %PATH% gibi ortam değişkenlerini ayarlamak için kullanışlıdır. |
customLaunchCommandArgs |
Dize | customLaunchCommand bağımsız değişkenlerini belirtir. (. customLaunchCommand ) |
env |
Özel ortam değişkenlerinin anahtar-değer listesini belirtir. Örneğin, "myEnv": "myVal" | |
commands |
dizi | Sırayla çağrılacak komutların listesini belirtir. |
Örnek
Aşağıdaki görevler, CppProperties.json şema başvurusunda gösterildiği gibi klasörde bir derleme dosyası sağlandığında ve Mingw64
ortam CppProperties.json tanımlandığında make.exe çağırır:
{
"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"]
}
]
}
Bu görevler, Çözüm Gezgini'da bir .cpp dosyasına sağ tıkladığınızda bağlam menüsünden çağrılabilir.
Uzak Özellikler
Uzak görevler, C++ iş yüküyle Linux geliştirmeyi yüklediğinizde ve Visual Studio Bağlantı Yöneticisi kullanarak uzak bir makineye bağlantı eklediğinizde etkinleştirilir. Uzak bir görev, uzak bir sistemde komutlar çalıştırır ve dosyaları buna da kopyalayabilir.
Görev türü olduğunda remote
, şu özellikler kullanılabilir:
Özellik | Türü | Veri Akışı Açıklaması |
---|---|---|
remoteMachineName |
Dize | Uzak makinenin adı. Bağlantı Yöneticisi bir makine adıyla eşleşmelidir. |
command |
Dize | Uzak makineye gönderilecek komut. Varsayılan olarak komutlar uzak sistemdeki $HOME dizininde yürütülür. |
remoteWorkingDirectory |
Dize | Uzak makinedeki geçerli çalışma dizini. |
localCopyDirectory |
Dize | Uzak makineye kopyalanacak yerel dizin. Varsayılan olarak geçerli çalışma dizinine geçer. |
remoteCopyDirectory |
Dize | Kopyalandığı localCopyDirectory uzak makinedeki dizin. |
remoteCopyMethod |
Dize | Kopyalama için kullanılacak yöntem. İzin verilen değerler: "none", "sftp", "rsync". Büyük projeler için rsync önerilir. |
remoteCopySourcesOutputVerbosity |
Dize | İzin verilen değerler: "Normal","Ayrıntılı","Tanılama". |
rsyncCommandArgs |
Dize | Varsayılan olarak "-t --delete" kullanılır. |
remoteCopyExclusionList |
dizi | kopyalama işlemlerinin dışında tutulacak dosyaların localCopyDirectory virgülle ayrılmış listesi. |
Örnek
Çözüm Gezgini'da main.cpp sağ tıkladığınızda bağlam menüsünde aşağıdaki görev görünür. Bağlantı Yöneticisi adlı ubuntu
uzak bir makineye bağlıdır. Görev, Visual Studio'daki geçerli açık klasörü uzak makinedeki sample
dizine kopyalar ve ardından programı oluşturmak için g++ öğesini çağırır.
{
"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 özellikleri
Görev türü olduğunda msbuild
, şu özellikler kullanılabilir:
Özellik | Türü | Veri Akışı Açıklaması |
---|---|---|
verbosity |
Dize | MSBuild projesi derleme çıkış verbosityAllowed değerlerini belirtir: "Quiet", "Minimal", "Normal", "Detailed", "Diagnostic". |
toolsVersion |
Dize | Projeyi derlemek için araç takımı sürümünü belirtir. Örneğin, "2.0", "3.5", "4.0", "Current". Varsayılan olarak "Geçerli" olur. |
globalProperties |
nesne | Projeye geçirecek genel özelliklerin anahtar-değer listesini belirtir; örneğin, "Configuration":"Release" |
properties |
nesne | Yalnızca ek proje özelliklerinin anahtar-değer listesini belirtir. |
targets |
dizi | Projede sırayla çağrılacak hedeflerin listesini belirtir. Proje varsayılan hedefi belirtilmezse kullanılır. |