Share via


İ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

  1. Visual Studio'yu açın ve Sınıf Kitaplığı (.NET Framework) şablonundan yeni bir proje oluşturun.

  2. Projeye CodeAnalysisManagedDemo adını verin.

  3. Proje oluşturulduktan sonra Class1.cs dosyasını açın.

  4. 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; } }
        }
    }
    
  5. Class1.cs dosyasını kaydedin.

Projeyi kod hataları için analiz etme

  1. Çözüm Gezgini'da CodeAnalysisManagedDemo projesini seçin.

  2. Proje menüsünde Özellikler'e tıklayın.

    CodeAnalysisManagedDemo özellikleri sayfası görüntülenir.

  3. Kod Analizi sekmesini seçin.

  4. İkili çözümleyiciler bölümünde Derlemede çalıştır'ın seçildiğinden emin olun.

  5. Etkin kurallar açılan listesinden Microsoft Tüm Kurallar'ı seçin.

  6. Dosya menüsünde Seçili Öğeleri Kaydet'e tıklayın ve özellikler sayfalarını kapatın.

  7. 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

  1. 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.

  2. Çözüm Gezgini'de Tüm Dosyaları Göster'i seçin.

  3. Özellikler düğümünü genişletin ve AssemblyInfo.cs dosyasını açın.

  4. 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ına demoekleyin.

    CA1032: Standart özel durum oluşturucuları uygulama: Oluşturucuyu public demo (String s, Exception e) : base(s, e) { } sınıfına demoekleyin.

    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.Serializationbir using deyim eklemeniz gerekir.

    CA1032: Standart özel durum oluşturucuları uygulama: Oluşturucuyu public demo () : base() { } sınıfına demoekleyin.

    CA1709: Tanımlayıcılar doğru şekilde belirtilmelidir: Ad alanının testCode büyük/küçük harflerini olarak TestCodedeğiştirin.

    CA1709: Tanımlayıcılar doğru şekilde belirtilmelidir: Üyenin adını olarak Demodeğiştirin.

    CA1709: Tanımlayıcılar doğru şekilde belirtilmelidir: Üyenin adını olarak Itemdeğ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 DemoExceptiondeğiştirin.

    CA2237: ISerializable türlerini SerializableAttribute ile işaretleyin: özniteliğini sınıfına demoekleyin[Serializable ()].

    CA2210: Derlemeler geçerli tanımlayıcı adlara sahip olmalıdır: Tanımlayıcı ad anahtarıyla 'CodeAnalysisManagedDemo' işaretini girin:

    1. Proje menüsünde CodeAnalysisManagedDemo Özellikleri'ni seçin.

      Proje özellikleri görüntülenir.

    2. İmzalama sekmesini seçin.

    3. Derlemeyi imzala onay kutusunu seçin.

    4. 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.

    5. Anahtar dosya adı için TestKey girin.

    6. Bir parola girin ve Tamam'ı seçin.

    7. 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; } }
        }
    }
    
  5. Projeyi yeniden oluşturun.

Kod analizi uyarılarını dışla

  1. Kalan uyarıların her biri için aşağıdakileri yapın:

    1. Hata Listesi'nde uyarıyı seçin.

    2. Sağ tıklama menüsünden (bağlam menüsü), Gizleme Dosyasında Gizle'yi>seçin.

  2. Projeyi yeniden oluşturun.

    Proje herhangi bir uyarı veya hata olmadan derlenir.

Yönetilen kod için kod analizi