Пошаговое руководство. Проверка управляемого кода на наличие дефектов
В данном пошаговом руководстве описывается процесс проверки управляемого проекта на наличие дефектов кода при помощи средства анализа кода.
Данное руководство содержит пошаговые инструкции по процессу анализа кода для проверки сборок управляемого кода .NET на соответствие правилам разработки решений Microsoft .NET.
В данном пошаговом руководстве:
- Анализ предупреждений о дефектах кода и устранение их причины.
Обязательные компоненты
- Visual Studio Premium.
Создание библиотеки классов
Создание библиотеки классов |
|
Анализ проекта
Проверка управляемого проекта на наличие дефектов в коде
Выберите проект CodeAnalysisManagedDemo в обозревателе решений.
В меню Проект выберите пункт Свойства.
На экран будет выведена страница свойств проекта CodeAnalysisManagedDemo.
Выберите пункт Анализкода.
Убедитесь, что выбрана опция Включитьанализ кода в построении (определяет константу CODE_ANALYSIS).
В раскрывающемся списке выберите команду Запустить этот набор правил и выберите Все правила Майкрософт.
Выберите пункт Сохранить выбранные элементы в меню Файл, затем закройте страницу свойств проекта ManagedDemo.
Выберите пункт Построить ManagedDemo в меню Построение.
В окнах Анализ Кода и Вывод отобразятся предупреждения построения проекта CodeAnalysisManagedDemo.
Если окно Анализ кода не отображается, в меню Анализировать выберите Окна, а затем N/A.
Исправление проблем анализа кода
Исправление нарушений правил анализа кода
В меню Вид выберите пункт Список ошибок.
В зависимости от выбранного профиля разработчика, возможно, понадобится навести указатель на пункт Другие окна в меню Вид и затем выбрать пункт Список ошибок.
Выберите пункт Показать все файлы в обозревателе решений.
После этого разверните узел "Свойства" и откройте файл AssemblyInfo.cs.
Используйте сведения из следующей таблицы для устранения причины предупреждений:
Предупреждения |
Устранение причины |
---|---|
CA1014: помечайте сборки атрибутом CLSCompliantAttribute: Microsoft.Design. Проект "demo" должен быть помечен атрибутом CLSCompliantAttribute и иметь значение "true". |
|
CA1032: реализуйте стандартные конструкторы исключения: Microsoft.Design. Добавьте следующий конструктор в данный класс: public demo(String) |
|
CA1032: реализуйте стандартные конструкторы исключения: Microsoft.Design. Добавьте следующий конструктор в данный класс: public demo(String, Exception) |
|
CA1032: реализуйте стандартные конструкторы исключения: Microsoft.Design. Добавьте следующий конструктор в данный класс: protected demo(SerializationInfo, StreamingContext) |
|
CA1032: реализуйте стандартные конструкторы исключения: Microsoft.Design. Добавьте следующий конструктор в данный класс: public demo() |
|
CA1709: идентификаторы должны иметь правильный регистр: Microsoft.Naming. Исправьте регистр имени пространства имен "testCode", заменив его на "TestCode". |
|
CA1709: идентификаторы должны иметь правильный регистр: Microsoft.Naming. Исправьте регистр имени типа "demo", заменив его на "Demo". |
|
CA1709: идентификаторы должны иметь правильный регистр: Microsoft.Naming. Исправьте регистр имени элемента "item", заменив его на "Item". |
|
CA1710: идентификаторы должны иметь правильные суффиксы: Microsoft.Naming. Измените имя "testCode.demo" на имя, заканчивающееся на "Exception". |
|
CA2210: сборки должны иметь допустимые строгие имена: Подпишите "ManagedDemo" ключом строгого имени. |
|
CA2237: пометьте типы ISerializable атрибутом SerializableAttribute: Microsoft.Usage. Добавьте атрибут [Serializable] в тип "demo", поскольку данный тип реализует ISerializable. |
|
После выполнения изменений, файл Class1.cs должен выглядеть следующим образом:
//CodeAnalysisManagedDemo
//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; } }
}
}
Исключение предупреждений анализа кода
Исключение предупреждений о дефектах кода
Для каждого из оставшихся предупреждений выполните следующие действия:
В окне анализа кода выберите предупреждение.
Выберите Действия, затем выберите Подавить сообщение, затем выберите N/A.
Дополнительные сведения см. в разделе Практическое руководство. Отключение предупреждений при помощи пункта меню.
Постройте проект заново.
Построение проекта теперь будет проходить без предупреждений и ошибок.