Я только что спросил у аналогичного question относительно сгенерированного кода от Service References
и Xml summary errors
. Ответ был опубликован, предполагая, что я мог бы добавить Service Reference
в свой собственный проект, а затем он может полностью избежать Xml
сводных предупреждений и Stylecop
ошибок.Stylecop Подавить ошибки для файла Reference.cs
Но я понял, что я был в состоянии обойти Xml
проблему, установив Service Reference
к Internal
и теперь застрял на StyleCop
ошибок.
Я использую FxCop
версию 10.0.
В свойствах моего проекта, на вкладке Code Analysis, я проверил вариант для
Результаты Подавить из сгенерированного кода (управляемый только)
Кроме того, глядя на сгенерированный код в файле Reference.cs, я вижу, что код украшен следующим атрибутом:
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
..whi ch Stylecop
следует пропустить, не так ли? Хотя это не работает, я все еще получаю ошибки StyleCop
для сгенерированного кода.
Edit: Следующий заголовок также можно найти в сгенерированном коде:
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.18033
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
Так почему не он игнорируется?
Я также нашел, что это question и попытался использовать следующее в моих StyleCop
параметры настройки по:
<CollectionProperty Name="GeneratedFileFilters">
<Value>Reference\.cs$</Value>
</CollectionProperty>
Но это не сработало, я боролся с регулярным выражением, но пытался добавить следующие значения в выше, чтобы заставить Stylecop игнорировать мой сгенерированный код.
Reference.cs
\Reference\.cs
\Reference\.cs$
Reference\.cs$
Кто-нибудь знает, как подавить все Stylecop
ошибки для Reference.cs
файла?
Edit2: Ошибки отображается для файла Reference.cs:
Ошибка 1 CA1812: Microsoft.Performance: ... это внутренний класс, который не по-видимому, никогда не инстанцирован. Если это так, удалите код с узла . Если этот класс должен содержать только статические методы, рассматривает возможность добавления частного конструктора, чтобы предотвратить компилятор от , генерирующий конструктор по умолчанию.
Ошибка 2 CA2239: Microsoft.Usage: Добавить 'частный вакуум OnDeserialized (StreamingContext)' метод для ввода ... и приписывать ему с System.Runtime.Serialization.OnDeserializedAttribute.
Ошибка 4 CA1811: Microsoft.Performance: ... похоже, нет популярных или защищенных абонентов.
У меня есть 27 из этих трех типов ошибок.
Редактировать 3: У меня есть настройка стиля/Fx cop для работы на сборке. Я добавил CODE_ANALYSIS
в условной компиляции символов на вкладке сборки и
"$(ProgramFiles)\Microsoft FxCop 10.0\FxCopCmd.exe" /file:"$(TargetPath)" /ruleid:-"Microsoft.Design#CA1006" /ruleid:-"Microsoft.Design#CA1020" /console /cul:en-GB /q /assemblyCompareMode:StrongNameIgnoringVersion
... в Post-build event command line
на вкладке Build Events
.
Не могли бы вы подробно сообщить, какие ошибки вы видите? – Mightymuke
@Mightmuke, см. Edit 2 – DevDave
Кажется, что это отлично работает для меня, когда я выбираю параметр «Подавить результаты сгенерированного кода» (хотя у меня нет этого текста в скобках, мне интересно, как и почему это там) , Вы запускаете это из IDE (aka Code Analysis) или из бегуна FxCop? Если из IDE у вас есть несколько проектов? При запуске из среды IDE возникает проблема в том, что параметры анализа кода из первого проекта переопределяют параметры для проекта «под» (по крайней мере, в VS2010). Это, конечно, не проблема, если у вас есть только один проект. – Mightymuke