#.net #visual-studio-2010 #stylecop
#.net #visual-studio-2010 #stylecop
Вопрос:
В настоящее время я работаю над проектом, и мы рассматриваем возможность обновления нашего StyleCop с версии 4.3.3 до 4.5
Во время всего этого веселья мы столкнулись с правилом SA1649 — «FileHeaderFileNameDocumentationMustMatchTypeName», которое все хорошо, но вызывает проблемы с глобальными файлами.asax.cs, поскольку файл
// --------------------------------------------------------------------------------------------------------------------
// <copyright file="Global.asax.cs" company="COMPANY">
// Copyright (c) COMPANY. All rights are reserved.....
// </copyright>
// <summary>
// Starting point for back office website.
// </summary>
// --------------------------------------------------------------------------------------------------------------------
namespace Foo.Web
{
/// <summary>
/// Starting point for back office website.
/// </summary>
public class MvcApplication : HttpApplication
{
....
}
}
На него жалуются, потому что имя файла ‘Global.asax.cs’ и класс ‘MvcApplication’ не совпадают. Мы пытались поместить список подавления для ‘Global.asax.cs’ в настройки sylecop, но, похоже, это не сработало. (В настоящее время наша работа заключается в том, чтобы полностью отключить правило, но мы не хотим оставлять это как таковое, нам нужно только исключение для файлов Global.asax.cs.)
Ответ №1:
Используйте подавление на уровне пространства имен:
[module: System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1649:FileHeaderFileNameDocumentationMustMatchTypeName", Justification = "Reviewed.")]
namespace MyNamespace
{
}
Комментарии:
1. К сожалению, это потребовало бы, чтобы мы делали это для каждого проекта MVC, который не был идеальным. К счастью, нам удалось исправить настройки вручную, чтобы заставить его работать.
Ответ №2:
Обнаружил это, потратив немного времени и манипулируя исходным файлом, сгенерированным инструментом.
<StyleCopSettings Version="105">
<Analyzers>
... Removed for brevity ...
</Analyzers>
<SourceFileList>
<SourceFile>Global.asax.cs</SourceFile>
<Settings>
<Analyzers>
<Analyzer AnalyzerId="StyleCop.CSharp.DocumentationRules">
<Rules>
<Rule Name="FileHeaderFileNameDocumentationMustMatchTypeName">
<RuleSettings>
<BooleanProperty Name="Enabled">False</BooleanProperty>
</RuleSettings>
</Rule>
</Rules>
</Analyzer>
</Analyzers>
</Settings>
</SourceFileList>
</StyleCopSettings>
Надеюсь, это поможет кому-либо еще с этой проблемой.
Комментарии:
1. Разочаровывающие 34
RuleSettings
года спустя я заставил StyleCop игнорировать все, что SimpleJSON добавлял в мой проект. Спасибо!