Kaynak kodu analizine genel bakış

.NET Compiler Platform (Roslyn) Çözümleyicileri C# veya stil Visual Basic, bakım, tasarım ve diğer sorunlar için kodlarınızı inceler. Bu inceleme veya analiz, tüm açık dosyalarda tasarım zamanında yapılır.

Çözümleyiciler aşağıdaki gruplara ayrılmalıdır:

Çözümleyicilerin önem derecesi

Her çözümleyici aşağıdaki önem düzeylerinden birini içerir:

Önem Derecesi (Çözüm Gezgini) Önem derecesi (EditorConfig dosyası) Derleme zamanı davranışı Düzenleyici davranışı
Hata error İhlaller Hata Listesi ve komut satırı derleme çıkışında hata olarak görünür ve yapıların başarısız olmasına neden olur. Sorunlu kodun kırmızı renkli bir dalgalı çizgi ile altı çizilir ve kaydırma çubuğunda küçük bir kırmızı kutu ile işaretlenir.
Uyarı warning İhlaller Hata Listesi ve komut satırı derleme çıkışında Uyarı olarak görünür, ancak derlemelerin başarısız olmasına neden olmaz. Sorunlu kodun yeşil bir dalgalı çizgi ile altı çizilir ve kaydırma çubuğunda küçük bir yeşil kutu ile işaretlenir.
Bilgi suggestion İhlaller, komut satırı derleme çıktısında değil, Hata Listesi iletiler olarak görünür. Sorunlu kodun gri dalgalı çizgi ile altı çizilir ve kaydırma çubuğundaki küçük bir gri kutusuyla işaretlenir.
Gizli silent Kullanıcıya görünür değil. Kullanıcıya görünür değil. Ancak tanılama, IDE tanılama altyapısına bildirilir.
Yok none Tamamen gizlendi. Tamamen gizlendi.
Varsayılan default Kuralın varsayılan önem derecesine karşılık gelir. Bir kural için varsayılan değerin ne olduğunu belirlemek için Özellikler penceresi bakın. Kuralın varsayılan önem derecesine karşılık gelir.

Kural ihlalleri bir çözümleyici tarafından bulunursa, bunlar kod düzenleyicisinde (sorunlu kod altında bir dalgalı çizgi olarak) ve hata listesi penceresinde raporlanır.

Hata Listesi penceresinde çözümleyici ihlali

Hata listesinde bildirilen çözümleyici ihlalleri kuralın önem derecesi düzeyi ayarıyla eşleşir. Çözümleyici ihlalleri, kod düzenleyicisinde rahatsız eden kodun altında geçişler olarak da gösterilir. Aşağıdaki görüntüde bir hata (kırmızı geçiş), bir uyarı (yeşil geçiş) ve bir öneri (üç gri nokta) olmak için üç — ihlal gösterilir:

Visual Studio'de kod düzenleyicisinde Visual Studio

Birçok çözümleyici kuralı veya tanılama, kural ihlallerini düzeltmek için uygulayabilecek bir veya daha fazla ilişkili kod düzeltmesi içerir. Kod düzeltmeleri, diğer Hızlı Eylemler türleriyle birlikte ampul simgesi menüsünde gösterilir. Bu kod düzeltmeleri hakkında daha fazla bilgi için bkz. Yaygın Hızlı Eylemler.

Çözümleyici ihlali ve Hızlı Eylem kod düzeltmesi

Çözümleyici önem derecelerini yapılandırma

Çözümleyici kurallarının önem derecelerini veya tanılamayı bir EditorConfig dosyasında veya ampul menüsünden yapılandırabilirsiniz.

Çözümleyiciler, siz yazarak derleme zamanında kodu inceler ve canlı olarak da yalıtabilir. Canlı kod analizinin kapsamını yalnızca geçerli belge, tüm açık belgeler veya çözümün tamamı için yürütecek şekilde yapılandırabilirsiniz. Bkz. Nasıl yapılandırılır: Canlı kod analizinin kapsamını yapılandırma.

İpucu

Kod çözümleyicilerinden gelen derleme zamanı hataları ve uyarıları yalnızca çözümleyiciler bir NuGet paketi olarak yüklüyse gösterilir. Yerleşik çözümleyiciler (örneğin, IDE0067 ve IDE0068) derleme sırasında hiçbir zaman çalışmaz.

NuGet paketiyle VSIX uzantısı karşılaştırması

Üçüncü taraf çözümleyicileri bir NuGet paketi aracılığıyla proje başına yükleyebilir. Bazıları, bir Visual Studio uzantısı olarak da kullanılabilir. Bu durumda, bu uzantılar Visual Studio. Çözümleyicileri yüklemenin bu iki yöntemi arasında bazı önemli davranış farklılıkları vardır.

Kapsam

Çözümleyicileri bir çözümleyici Visual Studio olarak yüklüler, çözüm düzeyinde ve tüm örneklerde Visual Studio. Çözümleyicileri tercih edilen yöntem olan bir NuGet paketi olarak yüklürsanız, bunlar yalnızca NuGet paketinin yük olduğu projeye uygulanır. Ekip ortamlarında, NuGet paketleri olarak yüklenen çözümleyiciler, o projede çalışan tüm geliştiriciler için kapsamdadır.

Derleme hataları

Komut satırı ya da bir sürekli tümleştirme (CI) yapısının parçası olarak, derleme zamanında uygulanmasını sağlamak için aşağıdaki seçeneklerden birini seçebilirsiniz:

  • .NET SDK 'da varsayılan olarak çözümleyiciler içeren bir .NET 5,0 projesi oluşturun. Kod analizi, .NET 5.0 veya sonraki sürümleri hedefleyen projeler için varsayılan olarak etkindir. Enablenetçözümleyiciler özelliğini true olarak ayarlayarak, önceki .NET sürümlerini hedefleyen projelerde Kod analizini etkinleştirebilirsiniz.

  • Çözümleyicileri bir NuGet paketi olarak yükler. Çözümleyici uyarıları ve hataları, çözümleyiciler bir uzantı olarak yüklerseniz derleme raporunda gösterilmez.

Aşağıdaki görüntüde, bir çözümleyici kuralı ihlali içeren bir proje derlemeden komut satırı derleme çıkışı gösterilmektedir:

Kural ihlali ile MSBuild çıkışı

Kural önem derecesi

Visual Studio uzantısı olarak yüklenen çözümleyiciler arasından kuralların önem derecesini yapılandıramazsınız. Kural önem derecesiniyapılandırmak için Çözümleyicileri bir NuGet paketi olarak yükler.

Sonraki adımlar

Ayrıca bkz.