İzlenecek yol: Kod hatalarını bulmak için statik kod analizini kullanma
Bu kılavuzda, eski kod analizini kullanarak yönetilen bir projeyi kod hataları için çözümleyeceksiniz.
Bu makale, .NET tarafından yönetilen kod derlemelerinizi .NET tasarım yönergelerine uygun olarak analiz etmek için eski analizi kullanma işleminde size yol gösterir.
Sınıf kitaplığı oluşturma
Visual Studio'yu açın ve Sınıf Kitaplığı (.NET Framework) şablonundan yeni bir proje oluşturun.
Projeye CodeAnalysisManagedDemo adını verin.
Proje oluşturulduktan sonra Class1.cs dosyasını açın.
Class1.cs'daki mevcut metni aşağıdaki kodla değiştirin:
using System; namespace testCode { public class demo : Exception { public static void Initialize(int size) { } protected static readonly int _item; public static int item { get { return _item; } } } }
Class1.cs dosyasını kaydedin.
Projeyi kod hataları için analiz etme
Çözüm Gezgini'da CodeAnalysisManagedDemo projesini seçin.
Proje menüsünde Özellikler'e tıklayın.
CodeAnalysisManagedDemo özellikleri sayfası görüntülenir.
Kod Analizi sekmesini seçin.
İkili çözümleyiciler bölümünde Derlemede çalıştır'ın seçildiğinden emin olun.
Etkin kurallar açılan listesinden Microsoft Tüm Kurallar'ı seçin.
Dosya menüsünde Seçili Öğeleri Kaydet'e tıklayın ve özellikler sayfalarını kapatın.
Oluştur menüsünde Derleme KoduAnalysisManagedDemo'ya tıklayın.
CodeAnalysisManagedDemo projesi derleme uyarıları Hata Listesi ve Çıkış pencerelerinde gösterilir.
Kod çözümleme sorunlarını düzeltme
Görünüm menüsünde Hata Listesi'ni seçin.
Seçtiğiniz geliştirici profiline bağlı olarak, Görünüm menüsünde Diğer Windows'u işaret edip Hata Listesi'ni seçmeniz gerekebilir.
Çözüm Gezgini'de Tüm Dosyaları Göster'i seçin.
Özellikler düğümünü genişletin ve AssemblyInfo.cs dosyasını açın.
Uyarıları düzeltmek için aşağıdaki ipuçlarını kullanın:
CA1014: Derlemeleri CLSCompliantAttribute ile işaretleyin: Kodu
[assembly: CLSCompliant(true)]
AssemblyInfo.cs dosyasının sonuna ekleyin.CA1032: Standart özel durum oluşturucuları uygulama: Oluşturucuyu
public demo (String s) : base(s) { }
sınıfınademo
ekleyin.CA1032: Standart özel durum oluşturucuları uygulama: Oluşturucuyu
public demo (String s, Exception e) : base(s, e) { }
sınıfınademo
ekleyin.CA1032: Standart özel durum oluşturucuları uygulayın: Oluşturucuyu
protected demo (SerializationInfo info, StreamingContext context) : base(info, context) { }
sınıf tanıtımına ekleyin. ayrıca için System.Runtime.Serializationbirusing
deyim eklemeniz gerekir.CA1032: Standart özel durum oluşturucuları uygulama: Oluşturucuyu
public demo () : base() { }
sınıfınademo
ekleyin.CA1709: Tanımlayıcılar doğru şekilde belirtilmelidir: Ad alanının
testCode
büyük/küçük harflerini olarakTestCode
değiştirin.CA1709: Tanımlayıcılar doğru şekilde belirtilmelidir: Üyenin adını olarak
Demo
değiştirin.CA1709: Tanımlayıcılar doğru şekilde belirtilmelidir: Üyenin adını olarak
Item
değiştirin.CA1710: Tanımlayıcılar doğru son eke sahip olmalıdır: Sınıfın ve oluşturucularının adını olarak
DemoException
değiştirin.CA2237: ISerializable türlerini SerializableAttribute ile işaretleyin: özniteliğini sınıfına
demo
ekleyin[Serializable ()]
.CA2210: Derlemeler geçerli tanımlayıcı adlara sahip olmalıdır: Tanımlayıcı ad anahtarıyla 'CodeAnalysisManagedDemo' işaretini girin:
Proje menüsünde CodeAnalysisManagedDemo Özellikleri'ni seçin.
Proje özellikleri görüntülenir.
İmzalama sekmesini seçin.
Derlemeyi imzala onay kutusunu seçin.
Dize adı anahtar dosyası seçin listesinde Yeni'yi> seçin<.
Tanımlayıcı Ad Anahtarı Oluştur iletişim kutusu görüntülenir.
Anahtar dosya adı için TestKey girin.
Bir parola girin ve Tamam'ı seçin.
Dosya menüsünde Seçili Öğeleri Kaydet'i seçin ve özellik sayfalarını kapatın.
Tüm değişiklikleri tamamladıktan sonra Class1.cs dosyası aşağıdaki gibi görünmelidir:
using System; using System.Runtime.Serialization; namespace TestCode { [Serializable()] public class DemoException : Exception { public DemoException () : base() { } public DemoException(String s) : base(s) { } public DemoException(String s, Exception e) : base(s, e) { } protected DemoException(SerializationInfo info, StreamingContext context) : base(info, context) { } public static void Initialize(int size) { } protected static readonly int _item; public static int Item { get { return _item; } } } }
Projeyi yeniden oluşturun.
Kod analizi uyarılarını dışla
Kalan uyarıların her biri için aşağıdakileri yapın:
Hata Listesi'nde uyarıyı seçin.
Sağ tıklama menüsünden (bağlam menüsü), Gizleme Dosyasında Gizle'yi>seçin.
Projeyi yeniden oluşturun.
Proje herhangi bir uyarı veya hata olmadan derlenir.
İlgili içerik
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin