Proje sorgusu API'si kavramları

Visual Studio'da projeler, bir yürütülebilir dosya veya başka bir çıkış biçiminde birlikte derlenmiş dosya koleksiyonlarıdır ve çözümler de proje koleksiyonlarıdır. Projeler ve çözümler dosya sisteminde sırasıyla proje dosyaları ve çözüm dosyaları tarafından temsil edilir. Daha fazla bilgi için bkz . Visual Studio'da çözümler ve projeler nelerdir?.

Proje sistemi, disk üzerindeki bir proje veya çözüm dosyası (örneğin ve .csproj ) ile .vbprojÇözüm Gezgini, tasarımcılar, hata ayıklayıcı, dil hizmetleri, derleme ve dağıtım gibi ancak bunlarla sınırlı olmamak üzere çeşitli Visual Studio özellikleri arasında yer alır. Proje sistemleri, kullanıcıların projelerle çalışmasına ve bunları sürdürmesine, sonuçları üretmek için derlemeleri çalıştırmasına ve çıktıyı test etmelerine yardımcı olmak için Visual Studio bileşenlerinin bir parçasıdır ve proje dosyasında yer alan dosyalarla gerçekleşen neredeyse tüm etkileşimler proje sistemi aracılığıyla gerçekleşir. Proje sistemleri hakkında daha fazla bilgiyi burada bulabilirsiniz.

Proje sorgusu API'sinin amacı, uzantıların projeler ve çözümler hakkındaki verileri almasını ve değişiklik yapmasını sağlamaktır.

Proje sorgusuyla yapabileceklerinizle ilgili bazı örnekler:

  • Projedeki kaynak dosyaları listeleme
  • Proje tarafından hangi NuGet paketlerine başvurıldığını denetleme
  • Belirli bir özellik kümesine sahip tüm projeleri bulma
  • Projeye yeni dosyalar ekleme
  • Projenin özelliklerini değiştirme

Proje sorgusu, çeşitli öğelere başvuran bir dizi yan tümcedir. Daha fazla bilgi edinmek ve sık kullanılan görevlere yönelik proje sorguları örnekleri için bkz . Proje Sorgusuna Genel Bakış .

Proje Sorgu Öğesi Türleri

Proje sorgularınızda başvurabileceğiniz birçok farklı öğe vardır. Bazı öğelerde de başvurulabilen alt veya alt koleksiyonlar vardır. Örneğin, bir WorkSpace koleksiyonu Projectsiçerir ve bunların her biri bir koleksiyonu Filesiçerir.

Süre Açıklama
Çalışma alanı Giriş noktasını sağlamak için API'nin en üst düzey çalışma alanı.
PropertiesAvailableStatus Sonuçta bir özellik değerinin kullanılabilir olup olmadığını denetlemek için giriş noktası.
QueryableSpace.Projects Çalışma alanı içindeki tüm projeler.
QueryableSpace.Solutions Çalışma alanında tüm çözümler.
Çözüm Visual Studio'daki bir çözümü temsil eder.
Project Visual Studio'daki projelerin çoğunu temsil eder, ancak çözüm klasörleri VisualStudio.Genişletilebilirlik'te farklı şekilde temsil edilir.
SolutionFolder Visual Studio çözümü içindeki projeleri ve dosyaları gruplandırmak için kullanılan bir sanal klasör olan çözüm klasörünü temsil eder.
Klasör Bir projenin içerdiği klasörü temsil eder.
Dosya Bir proje veya çözüm klasörü tarafından kapsanan bir dosyayı temsil eder.
ExternalFile Henüz C++ projeleri tarafından desteklenmeyen bir proje tarafından başvurulan dış dosyaları temsil eder.
Özellik Bir projenin, yapılandırmanın veya dosyanın özelliklerinin dinamik kümesini (zayıf ad/tür) temsil eder.
Rulename Proje yapılandırmasındaki Kurallar kümesini temsil eder.
ProjectReference Paylaşılan proje başvuruları dahil olmak üzere projeden projeye başvuruları temsil eder.
PackageReference Proje yapılandırmasındaki paket başvurularını temsil eder; genellikle NuGet paket başvurusu.
Assemblyreference Proje yapılandırmasında başvurulan derlemeyi temsil eder.
ConfigurationDimensionDefinition Proje yapılandırmalarını bildirmek için değerleri temsil eder.
ProjectConfiguration Proje yapılandırmasını temsil eder.
ConfigurationDimension Tek bir proje yapılandırmasının her boyutunun değerlerini temsil eder.
Outputgroup Bir proje çıktısı koleksiyonunu temsil eder.
Çıktı Tek bir çıkış grubu içindeki bir öğeyi temsil eder.
LaunchProfile Bir projede tanımlanan başlatma profillerini temsil eder.
Özellik Sayfası Proje için gösterilen özellik sayfalarını temsil eder.
Başlangıç Projeleri Çözümdeki tanımlı başlangıç projelerini temsil eder.

Project Query Yan Tümce Türleri

Proje sorgunuzdaki yan tümceler çıkışta ne tür öğelerin döndürülmesi gerektiğini, hangi koleksiyondan gelmeleri gerektiğini, hangi özelliklere sahip olmaları gerektiğini ve döndürülen öğelerin değiştirilebilir olup olmayacağını belirler. Yan tümceler, çıkışı sınırlamak ve filtrelemek için de kullanılır.

Süre Açıklama
With Sorgudan döndürülecek bir özelliğin/koleksiyonun değerini istemektedir.
WithRequired Bir özelliğin/koleksiyonun istek değeri sorgudan döndürülmelidir.
Konumu Sorgu sonucunun bir koşula göre filtrelenmesini istemektedir.
Al Sorgu sonucu yerine alt öğeleri alır.
QueryAsync Sorgu yürütür ve sonucu IAsyncEnumerable olarak alır.
Asqueryable Önceki alınan bir nesneden sorgu başlatır.
QueryFrom Önceki alınan nesneler koleksiyonundan bir sorgu başlatır.
AsUpdatable Sorgu sonucundan nesneyi güncelleştirmeye başlar.
ExecuteAsync Güncelleştirme sorgusu yürütür.

Proje Sorgusu Filtreleme Türleri

Filtreleme türleri, sorgu sonuçlarının iyileştirmesini ve odağını kolaylaştırır. Aşağıda listelenen belirli filtreleme türlerinin her sorgu öğesi için kullanılamayabileceğini lütfen unutmayın.

Süre Açıklama
ConfigurationsByName Sorgu sonuçlarını belirli bir yapılandırma adına göre filtreler.
FilesByPath Sorgu sonuçlarını belirli bir dosya yoluna filtreler.
OutputGroupsByName Sorgu sonuçlarını belirli bir çıkış grubu adına filtreler.
ProjectsByCapabilities Sorguyu belirli proje özelliklerine göre filtreler.
ProjectsByPath Sorgu sonuçlarını belirli bir proje yoluna filtreler.
ProjectsByProjectGuid Sorgu sonuçlarını belirli bir proje guid'sine filtreler.
RuleResultsByRuleName Sorguyu belirli bir kural adına göre filtreler.
Atla Atlayarak sınırlı sayıda öğeye sorgu sonucu yürütür.

Proje Sorgusu Eylem Türleri

Proje sorgunuzdaki eylemler, proje sisteminde hangi değişikliklerin yapıldığını belirler. Her sorgu öğesi türünün kendilerine özel eylemleri olduğunu unutmayın. Aşağıda eylem sorgularının basit bir listesi yer almaktadır.

Süre Açıklama
AddAssemblyReference Projeye derleme başvurusu ekleme işlemini temsil eder.
AddConfigurationDimensionValue Yapılandırma boyutuna yeni bir değer ekler (örneğin, Yapılandırma veya Platform).
AddFiles Projeye var olan bir dosyayı ekleme işlemini temsil eder.
AddLaunchProfile Projeye yeni başlatma profili ekleme işlemini temsil eder.
AddPackageReference Projeye paket başvurusu ekleme işlemini temsil eder.
AddProjectReference Projeye proje başvurusu ekleme işlemini temsil eder.
AddProject Bir çözüme veya çözüm klasörüne proje ekleme işlemini temsil eder.
AddProjectReferenceByPath Projenin yoluna proje başvurusu ekleme işlemini temsil eder.
AddSolutionConfiguration Çözüm yapılandırması ekleme işlemini temsil eder.
Derleme Çözüm oluşturma işlemini temsil eder.
Clean Çözümü temizleme işlemini temsil eder.
ConfigurationDimensionValue Yapılandırmanın boyut değerini ayarlama işlemini temsil eder.
Createfile Projede yeni dosya oluşturma işlemini temsil eder.
Createfolder Projede klasör oluşturma işlemini temsil eder.
CreateSolutionFolder Çözüme veya mevcut bir çözüm klasörüne çözüm klasörü ekleme işlemini temsil eder.
Hata Ayıklama Bir çözümün hatalarını ayıklama işlemini temsil eder.
DeleteConfigurationDimensionValue Yapılandırma boyutundan bir değeri siler (örneğin, Yapılandırma veya Platform).
Sil Bir Projeyi silme işlemini temsil eder.
DeleteSolutionConfiguration Çözüm yapılandırmasını kaldırma işlemini temsil eder.
Dağıtma Çözümü dağıtma işlemini temsil eder.
DuplicateLaunchProfile Var olan bir başlatma profilini çoğaltma işlemini temsil eder.
Dışarıda bırak Projeyi dışlama işlemini temsil eder.
Yeniden derleme Çözümü yeniden derleme işlemini temsil eder.
Yeniden YükleProje Projeyi yeniden yükleme işlemini temsil eder.
RemoveLaunchProfile Bir projeden başlatma profilini kaldırma işlemini temsil eder.
RenameFile Projedeki bir dosyayı yeniden adlandırma işlemini temsil eder.
RenameFolder Projedeki bir klasörü yeniden adlandırma işlemini temsil eder.
RenameSolutionFolder Çözüm klasörünü yeniden adlandırma işlemini temsil eder.
RenameProject Projeyi yeniden adlandırma işlemini temsil eder.
Çalıştır Bir çözümü çalıştırma işlemini temsil eder.
RunCustomTool Özel bir araç çalıştırma işlemini temsil eder.
Kaydet Projeyi kaydetme işlemini temsil eder.
Setpropertyvalue Özellik değeri ayarlama işlemini temsil eder.
SetCopyToLocal Proje başvurusu için CopyToLocal değerini ayarlama işlemini temsil eder.
SetBuildProperty Proje yapılandırma derleme özelliğinin değerini ayarlama işlemini temsil eder.
SetEvaluatedUIPropertyValue Kullanıcı görünür özelliğinin değerlendirilen değerini ayarlama işlemini temsil eder.
SetLaunchProfilePropertyValue Başlatma profili aracılığıyla kullanıma sunulan bir özelliğin değerini ayarlama işlemini temsil eder.
SetPackageReferenceVersion Çözüm klasörünü yeniden adlandırma işlemini temsil eder.
SetSolutionFolderName Çözüm klasörü adı ayarlama işlemini temsil eder.
SetStartupProjects Başlangıç projesi ayarlama işlemini temsil eder.
SetUnevaluatedUIPropertyValue User-visible özelliğinin değerlendirilmemiş değerini ayarlama işlemini temsil eder.
UnloadProject Projeyi kaldırma işlemini temsil eder.
WaitIntellisenseReady Proje veya çözüm intellisense işleminin ilerleme durumunun hazır olmasını bekleme işlemini temsil eder.

Proje Sorgusu Güncelleştirmeler Türleri

Bu sorgular, sorgu sonuçlarında yapılan güncelleştirmelerin izlenmesini destekler.

Süre Açıklama
track Güncelleştirmeler Async Sorgudaki değişiklikleri izleme işlemini temsil eder.

Yaygın görevlere yönelik proje sorgularının bazı örneklerini görmek için bkz. Proje Sorgusuna Genel Bakış

Proje sorgusu API'sini kullanan örnek bir uzantı için bkz. Project Query Örneği