Aracılığıyla paylaş


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, remoteveya 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.