"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:
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:
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 komutunadir
bir çağrı geçirir.${outDir}
: Makro{outDir}
blok öncesindetasks
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:
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:
- Kök (\) klasöründeki .vs klasöründeki dosyaları ayarlar.
- Bir ayarın hesaplandığı klasör.
- Kök (\) klasörüne kadar ve dahil olmak üzere geçerli klasörün üst klasörü.
- 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.
Çö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:
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:
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" } ] }
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:
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:
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.