Как исключить автоматически созданные файлы из анализа из вашего пользовательского правила анализа кода? - PullRequest
0 голосов
/ 05 октября 2018

Привет! Я написал собственное правило анализа кода с использованием FxCop sdk api и просто интегрировал его в свой тестовый проект.Он правильно анализирует код проекта, но также анализирует автоматически сгенерированные файлы.т.е. в моем случае файлы, созданные с расширением «.gics».

Я попытался проверить значение «Подавить ошибки анализа кода в сгенерированном коде» в свойствах моего анализа кода моего проекта. Однако разницы нетв моем выводе.

Может кто-нибудь сказать мне, как я могу исключить мой автоматически сгенерированный код из анализа с моим настраиваемым правилом?

РЕДАКТИРОВАТЬ: Потратив немного больше времени на анализ проблемы и реализации, я пришелк выводу, что автоматически сгенерированный код анализируется из-за отсутствия [GeneratedCodeAttribute] в некоторых полях автоматически сгенерированных .g.i.cs файлов.

Вот пример моего автоматически сгенерированного кода:

#line 72 "..\..\..\..\Views\Screen.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtCopyright;

#line default
#line hidden

/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
    if (_contentLoaded) {
        return;
    }
    _contentLoaded = true;

    #line default
    #line hidden
}

В этом примере поле txtCopyright анализируется во время анализа кода, и метод InitializeComponent() пропускается, что соответствует присутствию [GeneratedCodeAttribute].

Я нашел решение этой проблемы с помощьюналичие частичного класса с тем же именем, что и у автоматически сгенерированного файла, а затем добавление [GeneratedCodeAttribute] поверх этого класса.Но это не кажется правильным, так как может пропустить некоторый код, который должен быть фактически проанализирован.

Может кто-нибудь помочь мне узнать, что можно сделать, чтобы исключить такие поля, как txtCopyright, которые будут пропущены во время анализа кода?

...