Aracılığıyla paylaş


tasks.vs.json şema başvuru (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 kullanımı hakkında genel bilgi için, "Klasör Aç" geliştirmesi için derleme ve hata ayıklama görevlerini özelleştirme sayfasına bakın.

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 launch kullanılmalıdır.

Varsayılan Özellikler

Varsayılan özellikler tüm görev türlerinde kullanılabilir:

Özellik Türü Açıklama
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: "özel" (custom), "oluştur" (build), "temizle" (clean), "tekrar oluştur" (rebuild). Görevin bağlam menüsünde nerede görüneceğini belirler. Varsayılan olarak "özel ayar" 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şkeni boşaltmak için, onu "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 değer olarak "true" ayarlanmıştır.

Başlatma özellikleri

Görev türü olduğunda launch, şu özellikler kullanılabilir:

Özellik Türü Açıklama
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 komutun nasıl ilerleyeceğini belirtir.
workingDirectory Dize Komutun çalıştırılacağı dizini belirtir. Varsayılan olarak projenin geçerli çalışma dizinine ayarlanır.
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. Gerektirir 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, klasörde bir derleme dosyası sağlandığında ve CppProperties.json içinde Mingw64 ortam tanımlandığında, CppProperties.json şema başvurusunda gösterildiği gibi make.exe'yi ç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.

Uzaktan Ö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ü Açıklama
remoteMachineName Dize Uzak makinenin adı. Bağlantı Yöneticisindeki 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 mevcut çalışma dizini.
localCopyDirectory Dize Uzak makineye kopyalanacak yerel dizin. Varsayılan olarak geçerli çalışma dizinine ayarlanır.
remoteCopyDirectory Dize Uzak makinedeki localCopyDirectory'nun kopyalandığı 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.cppsağ tıkladığınızda bağlam menüsünde aşağıdaki görev görünür. Bağlantı Yöneticisi adlı ubuntuuzak 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ü Açıklama
verbosity Dize MSBuild projesi derleme çıktısı ayrıntı düzeyini belirtir. İzin verilen değerler: "Sessiz", "Minimal", "Normal", "Detaylı", "Teşhis".
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 ayar "Geçerli"dir.
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. Belirli bir hedef belirtilmezse, projenin varsayılan hedefi kullanılır.