"Klasör Aç" geliştirmesi için derleme ve hata ayıklama görevleri oluşturma

Visual Studio birçok farklı programlama dilini ve kod tabanını otomatik olarak çalıştırabilir. Klasör Aç seçeneği, özel yönergeler olmadan ve proje oluşturmadan tanınan bir kod tabanı için kodu hemen çalıştırmanıza olanak tanır. Geliştiriciler bu yaklaşımı genellikle hızlı test için kullanır.

Bazı kod temelleri, Visual Studio'nun tanımadığı veya Klasör Aç seçeneğiyle hemen işleyebildiği özel derleme araçları gerektirir. Bu senaryolarda, Visual Studio'ya kodun nasıl derlenip hatalarını ayıklanacağını bildirmek için derleme görevleri tanımlayabilirsiniz. Derleme görevleri, bir dilin kodu derlemesi ve çalıştırması için gereken tüm öğeleri belirtir ve neredeyse tüm gerekli işlemleri tamamlamak için kullanılabilir.

Bu makalede, Visual Studio'da tanınmayan, projesiz bir kod tabanı için derleme ve hata ayıklama ayarlarını yapılandırmak üzere derleme görevlerinin nasıl tanımlanacağı açıklanır.

JSON yapılandırma dosyalarını keşfetme

Projesiz bir kod tabanını özelleştirmek için Visual Studio, yapılandırma ayarları için iki JSON (.json) dosyası sağlar: görevler ve başlatma. Visual Studio Çözüm Gezgini'de belirli seçenekleri belirlediğinizde Visual Studio bu dosyaları gerektiği gibi oluşturur (veya açar).

Aşağıdaki tabloda JSON dosyaları ve bunların Çözüm Gezgini nasıl oluşturulacağı açıklanmaktadır.

JSON dosyası Yapılandırma amacı Dosya erişimi
tasks.vs.json Özel derleme komutlarını, özel derleyici anahtarlarını ve rastgele (derlemeyle ilgili olmayan) görevleri tanımlayın. Çözüm Gezgini'da, bağlam menüsünü açmak için bir dosya veya klasöre sağ tıklayın ve Görevleri Yapılandır'ı seçin.
launch.vs.json Hata ayıklama için komut satırı bağımsız değişkenlerini belirtin. Çözüm Gezgini bağlam menüsünü açmak için bir dosya veya klasöre sağ tıklayın ve Hata Ayıklama Yapılandırması Ekle'yi seçin.

Kaynak denetimine JSON dosyaları ekleme

Varsayılan olarak, görevler ve başlatma JSON dosyaları Çözüm Gezgini görünmez. Dosyalar, kod tabanınızın kök (\) klasöründe .vs adlı gizli bir klasörde bulunur. Dosyalar genellikle kaynak denetimine eklenmediğinden gizlenir. Çözüm Gezgini'da Tüm Dosyaları Göster seçeneğini belirleyerek Visual Studio'da gizli dosyaları görüntüleyebilirsiniz.

JSON dosyalarını kaynak denetimine eklemek istiyorsanız, dosyaları dosya sisteminizdeki kod tabanınızın kök (\) klasörüne sürükleyin. Dosyalar Çözüm Gezgini görünür hale gelir ve kaynak denetimi tarafından kullanılabilir.

tasks.vs.json ile görevleri tanımlama

Eylemleri doğrudan Visual Studio'da görev olarak çalıştırarak geçerli çalışma alanınızdaki dosyalar üzerinde derleme betiklerini ve dış işlemleri otomatikleştirebilirsiniz. Yeni bir görev yapılandırmak için, Çözüm Gezgini'da bir dosya veya klasöre sağ tıklayın ve Görevleri Yapılandır'ı seçin:

Çözüm Gezgini dosyalarında derleme betiklerini ve dış işlemleri otomatikleştirmek için görevleri nasıl yapılandırabileceğinizi gösteren ekran görüntüsü.

Bu eylem ,vs klasöründe tasks.vs.json dosyasını oluşturur (veya açar). Bu dosyada bir derleme görevi veya rastgele görev tanımlarsınız ve Visual Studio görevin adını Çözüm Gezgini sağ tıklama menüsüne komut olarak ekler. Çözüm Gezgini'de ilgili komutu seçerek görevi çağırabilirsiniz.

Özel görevler tek tek dosyalara veya belirli bir türe ait tüm dosyalara eklenebilir. Örneğin, NuGet paket dosyaları "Paketleri Geri Yükle" görevine sahip olacak şekilde yapılandırılabilir veya tüm kaynak dosyalar tüm JavaScript (.js) dosyaları için linter gibi statik bir çözümleme görevine sahip olacak şekilde yapılandırılabilir.

Tanınmayan araçlar için görevler oluşturma

Kod tabanınız Visual Studio tarafından tanınmayan özel derleme araçları kullanıyorsa, ek yapılandırma adımlarını tamamlayana kadar Visual Studio'da kodu çalıştıramaz ve hata ayıklayamazsınız.

Visual Studio'ya kodunuzu derleme, yeniden derleme ve temizleme yönergelerini vermek için derleme görevleri tanımlayabilirsiniz. tasks.vs.json dosyası, Visual Studio iç geliştirme döngüsünü kod tabanınız için tanımladığınız özel derleme araçlarıyla birleştirir.

Kod tabanınızda hello.cs adlı tek bir C# dosyası olduğunu varsayalım. Böyle bir kod temeli için makefile şu örneğe benzer olabilir:

build: directory hello.exe

hello.exe: hello.cs
    csc -debug hello.cs /out:bin\hello.exe

clean:
    del bin\hello.exe bin\hello.pdb

rebuild: clean build

directory: bin

bin:
    md bin

Derleme, temizleme ve yeniden derleme hedefleri içeren benzer bir derleme dosyası için, derleme dosyası için Görevleri Yapılandır seçeneğini kullanabilir ve aşağıdaki tasks.vs.json dosyasını tanımlayabilirsiniz. JSON dosyası, derleme aracı olarak NMAKE kullanarak kod tabanını derleme, yeniden derleme ve temizleme görevlerini tanımlar:

{
  "version": "0.2.1",
  "outDir": "\"${workspaceRoot}\\bin\"",
  "tasks": [
    {
      "taskName": "makefile-build",
      "appliesTo": "makefile",
      "type": "launch",
      "contextType": "build",
      "command": "nmake",
      "args": [ "build" ],
      "envVars": {
        "VSCMD_START_DIR": "\"${workspaceRoot}\""
      }
    },
    {
      "taskName": "makefile-clean",
      "appliesTo": "makefile",
      "type": "launch",
      "contextType": "clean",
      "command": "nmake",
      "args": [ "clean" ],
      "envVars": {
        "VSCMD_START_DIR": "\"${workspaceRoot}\""
      }
    },
    {
      "taskName": "makefile-rebuild",
      "appliesTo": "makefile",
      "type": "launch",
      "contextType": "rebuild",
      "command": "nmake",
      "args": [ "rebuild" ],
      "envVars": {
        "VSCMD_START_DIR": "\"${workspaceRoot}\""
      }
    }
  ]
}

tasks.vs.json dosyasında derleme görevlerini tanımladıktan sonra, Visual Studio ilgili görev komutlarını Çözüm Gezgini'daki sağ tıklama menüsüne ekler. Bu örnekte Derleme, Yeniden Derleme ve Temizleme seçenekleri, kod tabanındaki makefile örnekleri için sağ tıklama menüsüne eklenir:

Çözüm Gezgini'da sağ tıklama menüsüne eklenen derleme dosyası için Derleme, Yeniden Derleme ve Temizleme görevlerini gösteren ekran görüntüsü.

Visual Studio, Görevleri Yapılandır komutundan sonra sağ tıklama menüsündeki yeni komutları ayarlarına contextType göre listeler. "build", "rebuild" ve "clean" komutları Derleme komutlarıdır ve sağ tıklama menüsünün "Derleme" bölümünde listelenir.

Sağ tıklama menüsünde özel bir görev komutu seçtiğinizde işlem yürütülür. Visual Studio, Çıkış penceresinde komut çıkışını ve Hata Listesi'nde derleme hatalarını gösterir.

Rastgele işlemler için görev oluşturma

Herhangi bir rastgele işlem için tasks.vs.json dosyasında özel görevler tanımlayabilirsiniz. Seçili durumdaki dosyanın adını Çıkış penceresinde görüntülemek veya belirtilen klasördeki dosyaları listelemek için bir görev tanımlayabilirsiniz.

Örnek: Seçili durumdaki dosyanın görünen adı

Aşağıdaki örnekte tek bir rastgele görevi tanımlayan bir tasks.vs.json dosyası gösterilmektedir. Bu görevi çağırdığınızda, işlem seçili durumdaki JavaScript (.js) dosyasının dosya adını görüntüler.

{
  "version": "0.2.1",
  "tasks": [
    {
      "taskName": "Echo filename",
      "appliesTo": "*.js",
      "type": "default",
      "command": "${env.COMSPEC}",
      "args": [ "echo ${file}" ]
    }
  ]
}

Bu görevin kodu aşağıdaki özellikleri tanımlar:

  • taskName: Visual Studio'da sağ tıklama menüsünde görüntülenecek görev komut adı. Bu durumda Echo dosya adı.
  • appliesTo: Görev komutunun üzerinde işlem yapma dosyaları. Bu durumda JavaScript (.js) dosyaları.
  • command: Çağrılacak komut. Bu görev, komut satırı yorumlayıcısını COMSPEC (genellikle cmd.exe) tanımlamak için ortam değişkenini kullanır.
  • args: Visual Studio komutu çağırdığında iletecek tüm bağımsız değişkenler.
  • ${file}: Bu görevin bağımsız değişkenleri, Çözüm Gezgini seçili durumdaki dosyayı alan bir makro içerir.

tasks.vs.json dosyasını kaydettikten sonra, klasördeki herhangi bir JavaScript (.js) dosyasına sağ tıklayıp Echo dosya adı'nı seçebilirsiniz. Visual Studio, seçilen dosya adını Çıkış penceresinde görüntüler.

Örnek: Dosyaları ve alt klasörleri listeleme

Aşağıdaki örnekte, bin klasörünün dosyalarını ve alt klasörlerini listeleme görevini tanımlayan bir tasks.vs.json dosyası gösterilmektedir:

{
  "version": "0.2.1",
  "outDir": "\"${workspaceRoot}\\bin\"",
  "tasks": [
    {
      "taskName": "List Outputs",
      "appliesTo": "*",
      "type": "default",
      "command": "${env.COMSPEC}",
      "args": [ "dir ${outDir}" ]
    }
  ]
}

Bu görevin kodu aşağıdaki özellikleri tanımlar:

  • taskName: Sağ tıklama menüsünün görev komut adı olan Çıkışları Listele.
  • appliesTo: Bu görev, joker karakterin (*) kullanımıyla gösterildiği gibi belirtilen klasördeki tüm öğeler üzerinde hareket eder.
  • command: Görev, önceki örneğe benzer şekilde, komut satırı yorumlayıcısını COMSPEC (cmd.exe) tanımlamak için ortam değişkenini kullanır.
  • args: Visual Studio görevi çağırdığında, dizin (klasör) öğelerini listeleyen komutuna dir bir çağrı geçirir.
  • ${outDir}: Makro {outDir} blok öncesinde tasks tanımlanır. Bin klasörünü üzerinde işlem yapılan dizin olarak tanımlar.

Bu görev, kod tabanındaki tüm dosyalar için geçerlidir. Visual Studio sağ tıklama menüsüne rastgele bir görevin komut adını eklediğinde, Çalıştırma Listesi Çıkışları'nda olduğu gibi komutun ön ekini Çalıştır'a ekler.

Çözüm Gezgini'da herhangi bir dosya için sağ tıklama menüsünü açarsanız, Liste Çıktılarını Çalıştır görev komutu menünün "Derleme" bölümünde son komut olarak görünür. Liste Çıkışlarını Çalıştır'ı seçtiğinizde, Visual Studio Çıkış penceresinde kod tabanı için bölme klasörünün içeriğini listeler:

Visual Studio Çözüm Gezgini'da sağ tıklama menüsüne eklenen rastgele bir görevi gösteren ekran görüntüsü.

Birden çok task.vs.json dosyası kullanma

Kod tabanınızın kök (\) klasöründe ve alt klasörlerinde birden çok tasks.vs.json dosyanız olabilir. Bu yaklaşım, kod tabanınızdaki belirli alt klasörler veya dosyalar için farklı davranışlar tanımlama esnekliği sağlar.

Visual Studio, kod tabanı genelinde ayarları toplar veya geçersiz kılar ve dosyaların önceliklerini aşağıdaki sırayla ayarlar:

  1. Kök (\) klasöründeki .vs klasöründeki dosyaları ayarlar.
  2. Bir ayarın hesaplandığı klasör.
  3. Kök (\) klasörüne kadar ve dahil olmak üzere geçerli klasörün üst klasörü.
  4. Kök (\) klasöründeki dosyaları ayarlar.

Bu toplama kuralları yalnızca tasks.vs.json dosyasının örnekleri için geçerlidir.

tasks.vs.json özelliklerini inceleme

Aşağıdaki bölümlerde, tasks.vs.json dosyasında belirtebileceğiniz özelliklerden bazıları açıklanmaktadır.

appliesTo özelliğini ayarlama

gibi özelliğiyle appliesTo "appliesTo": "hello.js"dosya veya klasör adını belirterek herhangi bir dosya veya klasör için görevler oluşturabilirsiniz.

Aşağıdaki tabloda, belirli bir görev davranışı oluşturmak için özelliğiyle appliesTo kullanabileceğiniz dosya maskesi değerleri özetlemektedir:

Değer (dosya maskesi) Görev şunun için geçerlidir:
"*" Çalışma alanı içindeki tüm dosya ve klasörler
"*/" Çalışma alanı içindeki tüm klasörler
"*.js" Çalışma alanında JavaScript (.js) uzantısına sahip tüm dosyalar
"/*.js" Çalışma alanının kök (\) klasöründe JavaScript (.js) uzantısına sahip tüm dosyalar
"src/*/" src klasörünün tüm alt klasörleri
"makefile" Çalışma alanında makefile adlı tüm dosyalar
"/makefile" Yalnızca çalışma alanının kök (\) klasöründeki makefile adlı dosya

Görev bağımsız değişkenlerinde makro kullanma

Visual Studio komutu çağırdığında görev davranışını artırmak için makroları bir görevin bağımsız değişkenleri olarak geçirebilirsiniz.

Aşağıdaki tabloda bazı makro örnekleri liste verilmiştir:

Makro Açıklama Örnekler
${env.<VARIABLE>} Geliştirici komut isteminde kullanılabilir ortam değişkenlerini belirtir. Daha fazla bilgi için bkz . Geliştirici Komut İstemi ve Geliştirici PowerShell. ${env.PATH}, ${env.COMSPEC}
${workspaceRoot} Çalışma alanı klasörünün tam yolunu sağlar. C:\sources\hello, C:\sources\hello\bin
${file} Dosya veya klasörün tam yolunu sağlar. C:\sources\hello\src\hello.js*, C:\sources\hello\src\test.js*
${relativeFile} Dosya veya klasörün göreli yolunu sağlar. src\hello.js*, bin\hello.exe
${fileBasename} Yol veya uzantı hariç dosyanın adını sağlar. hello, test
${fileDirname} Dosya adı hariç olmak üzere dosyanın tam yolunu sağlar. C:\sources\hello\src*, C:\sources\hello\bin\test\*
${fileExtname} Seçili dosyanın uzantısını sağlar. .js, .cs, .exe

launch.vs.json ile hata ayıklamayı yapılandırma

Visual Studio, kod tabanınızda hata ayıklamayı yapılandırmak için kullanabileceğiniz bir launch.vs.json dosyası sağlar.

Not

CMake projelerini hata ayıklama için yapılandırmak için bkz . CMake hata ayıklama oturumlarını yapılandırma.

  1. Çözüm Gezgini bir yürütülebilir (.exe) dosyasına sağ tıklayın ve Hata Ayıklama Yapılandırması Ekle'yi seçin:

    Çözüm Gezgini sağ tıklama menüsünde 'Hata Ayıklama Yapılandırması Ekle' seçeneğinin nasıl seçildiğini gösteren ekran görüntüsü.

  2. Hata Ayıklayıcı Seç iletişim kutusunda, listeden bir hata ayıklama yapılandırması seçeneği belirleyin ve ardından Seç'i seçin:

    Çözüm Gezgini'da başlatma yapılandırması için hata ayıklayıcının nasıl seçildiğini gösteren ekran görüntüsü.

    launch.vs.json dosyası henüz yoksa, Visual Studio dosyayı oluşturur. hello.exe yürütülebilir dosyası için oluşturulan dosyanın bir örneği aşağıda verilmiştir:

    {
      "version": "0.2.1",
      "defaults": {},
      "configurations": [
        {
          "type": "default",
          "project": "bin\\hello.exe",
          "projectTarget": "",
          "name": "hello.exe"
        }
      ]
    }
    
  3. Başlatma dosyanız olduktan sonra, Çözüm Gezgini'da kod tabanınız için yürütülebilir dosyaya sağ tıklayın ve Başlangıç Öğesi Olarak Ayarla'yı seçin.

    Yürütülebilir dosya, kod tabanınız için başlangıç öğesi olarak belirlenir ve Visual Studio, hata ayıklama Başlangıç düğmesinin etiketini yürütülebilir dosyanızın adını yansıtacak şekilde ayarlar:

    Visual Studio'da Başlangıç eylemi için özel bir etiket gösteren ekran görüntüsü.

    Hata ayıklayıcıyı F5 ile başlattığınızda, Visual Studio kodunuzda hata ayıklamaya başlar ve herhangi bir kesme noktasında durur. Tüm tanıdık hata ayıklayıcı pencereleri kullanılabilir ve işlevseldir.

    C++ açık klasör projelerindeki özel derleme ve hata ayıklama görevleri hakkında daha fazla bilgi için bkz . Visual Studio'da C++ derleme sistemleri için Klasör Açma desteği.

Hata ayıklama için bağımsız değişkenleri belirtme

launch.vs.json dosyasında hata ayıklayıcıya geçirmek için komut satırı bağımsız değişkenlerini belirtebilirsiniz. Aşağıdaki örnekte gösterildiği gibi dizideki bağımsız değişkenleri args ekleyin:

{
  "version": "0.2.1",
  "defaults": {},
  "configurations": [
    {
      "type": "default",
      "project": "bin\\hello.exe",
      "name": "hello.exe"
    },
    {
      "type": "default",
      "project": "bin\\hello.exe",
      "name": "hello.exe a1",
      "args": [ "a1" ]
    }
  ]
}

Hata ayıklama yapılandırmasını başlatma

İstediğiniz kadar hata ayıklama yapılandırması oluşturabilirsiniz. Başlatma dosyasını kaydettiğinizde, yapılandırma adları hata ayıklama hedefi açılan listesine eklenir. Hata ayıklayıcısını başlatmak için belirli bir hedef seçebilirsiniz:

Visual Studio Çözüm Gezgini'daki Hata ayıklama hedefi açılan listesinde kullanılabilir yapılandırmaları gösteren ekran görüntüsü.

Menüde fazladan hedefler görmüyorsanız Hata Ayıklama Hedeflerini Göster/Gizle'yi seçin ve görünür hedefleri yapılandırın.

Yapılandırmaların önceliğini anlama

Visual Studio, launch.vs.json dosyalarında dizi özelliğinde configurations belirtilen öğeler için iki konum tarar:

  • Kod tabanının kök (\) klasörü
  • .vs klasörü

Her iki konumda da launch.vs.json dosyalarınız varsa ve yapılandırma tanımında çakışma varsa, .vs\launch.vs.json dosyasındaki değer önceliklidir.

Diğer ayarlar dosyalarını kullanma

Göreve ve JSON dosyalarını başlatmaya ek olarak Visual Studio, kod tabanınızda tanımlanan diğer yapılandırma dosyalarındaki ayarları okur. Yaygın olarak kullanılan iki dosya settings.json ve .gitignore'dır.

.vscode\settings.json ile kod ayarlarını tanımlama

Visual Studio, dosya .vscode adlı bir klasörde bulunduğunda settings.json adlı dosyadan sınırlı ayarları okur.

Bu işlevsellik, daha önce Visual Studio Code'da geliştirilen kod temelleri için sağlanır. Şu anda .vscode\settings.json dosyasından okunan tek ayardırfiles.exclude. Bu ayar, Çözüm Gezgini ve bazı arama araçlarından gelen dosyaları görsel olarak filtrelemek için kullanılır.

Kod tabanınızda birden çok .vscode\settings.json dosyası olabilir. Bu dosyadan okunan ayarlar.vscode üst klasörüne ve tüm alt klasörlerine uygulanır.

.gitignore ile Git dosyalarını yapılandırma

Git'e kaynak denetimi uygularken hangi dosyaları yoksayacağını bildirmek için bir .gitignore dosyası kullanabilirsiniz. .gitignore dosyaları genellikle bir kod tabanının parçası olarak dahil edilir, bu nedenle ayarlar kod tabanının tüm geliştiricileriyle paylaşılabilir. Visual Studio, öğeleri görsel olarak ve bazı arama araçlarından filtrelemek için .gitignore dosyalarındaki desenleri okur.

.gitignore dosyasından okunan ayarlar üst klasörüne ve tüm alt klasörlere uygulanır.