Share via


逐步解說:使用靜態程式碼分析來尋找程式碼缺失

在此逐步解說中,您將使用舊版程式碼分析,來分析受控專案中是否有程式碼缺失。

本文將逐步引導您使用舊版分析來分析 .NET 受控程式碼組件,以符合 .NET 設計指導方針。

建立類別庫

  1. 開啟 Visual Studio,然後從類別庫 (.NET Framework) 範本建立新專案。

  2. 將專案命名為 CodeAnalysisManagedDemo

  3. 建立專案之後,開啟 Class1.cs 檔案。

  4. 以下列程式碼取代 Class1.cs 中的現有文字:

    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 檔案。

分析專案中是否有程式碼缺失

  1. 在 [方案總管] 中選取 CodeAnalysisManagedDemo 專案。

  2. 按一下 [專案] 功能表上的 [屬性]

    CodeAnalysisManagedDemo 屬性頁面隨即顯示。

  3. 選取 [程式碼分析] 索引標籤。

  4. 確定已在 [二進位分析器] 區段中選取 [在組建上執行]

  5. 從 [作用中規則] 下拉式清單中,選取 [Microsoft 所有規則]。

  6. 在 [檔案] 功能表上,按一下 [儲存選取的項目],然後關閉屬性頁面。

  7. 在 [建置] 功能表上,按一下 [建置 CodeAnalysisManagedDemo]

    CodeAnalysisManagedDemo 專案建置警告會顯示在 [錯誤清單] 和 [輸出] 視窗中。

更正程式碼分析問題

  1. 在 [檢視] 功能表上,選擇 [錯誤清單]

    視選擇的開發人員設定檔而定,您可能必須指向 [檢視] 功能表上的 [其他 Windows],然後選擇 [錯誤清單]

  2. 在 [方案總管] 中選擇 [顯示所有檔案]

  3. 展開 [屬性] 節點,然後開啟 AssemblyInfo.cs 檔案。

  4. 使用下列秘訣來更正警告:

    CA1014:使用 CLSCompliantAttribute 標記組件:將程式碼 [assembly: CLSCompliant(true)] 新增至 AssemblyInfo.cs 檔案的結尾。

    CA1032:實作標準例外狀況建構函式:將建構函式 public demo (String s) : base(s) { } 新增至類別 demo

    CA1032:實作標準例外狀況建構函式:將建構函式 public demo (String s, Exception e) : base(s, e) { } 新增至類別 demo

    CA1032:實作標準例外狀況建構函式:將建構函式 protected demo (SerializationInfo info, StreamingContext context) : base(info, context) { } 新增至類別示範。 您也必須新增 System.Runtime.Serializationusing 陳述式。

    CA1032:實作標準例外狀況建構函式:將建構函式 public demo () : base() { } 新增至類別 demo

    CA1709:識別碼的大小寫應正確:將命名空間 testCode 的大小寫變更為 TestCode

    CA1709:識別碼的大小寫應正確:將成員的名稱變更為 Demo

    CA1709:識別碼的大小寫應正確:將成員的名稱變更為 Item

    CA1710:識別碼應有正確的尾碼:將類別的名稱及其建構函式變更為 DemoException

    CA2237:使用 SerializableAttribute 標記 ISerializable 型別:將 [Serializable ()] 屬性新增至類別 demo

    CA2210:組件應有有效的強式名稱:使用強式名稱金鑰簽署 'CodeAnalysisManagedDemo':

    1. 在 [專案] 功能表上,選擇 [CodeAnalysisManagedDemo 屬性]

      專案屬性隨即出現。

    2. 選擇 [ 簽署 ] 索引標籤。

    3. 選取 [簽署組件] 核取方塊。

    4. [選擇強式名稱金鑰檔] 清單中,選取 <新增>

      [建立強式名稱金鑰] 對話方塊隨即出現。

    5. 針對 [金鑰檔案名稱],輸入 TestKey

    6. 輸入密碼,然後選擇 [確定]

    7. 在 [檔案] 功能表上,選擇 [儲存選取的項目],然後關閉屬性頁。

    完成所有變更之後,Class1.cs 檔案看起來應如下所示:

    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. 重建專案。

排除程式碼分析警告

  1. 針對其餘每個警告,請執行下列動作:

    1. 在 [錯誤清單] 中選取警告。

    2. 以滑鼠右鍵按一下功能表 (捷徑功能表),選擇 [隱藏]>[在隱藏項目檔中]

  2. 重建專案。

    專案建置時沒有任何警告或錯誤。

受控程式碼的程式碼分析